_creat, _wcreat
Tworzy nowy plik._creati _wcreat została zaniechana; Użyj _sopen_s, _wsopen_s zamiast.
int _creat(
const char *filename,
int pmode
);
int _wcreat(
const wchar_t *filename,
int pmode
);
Parametry
filename
Nazwa nowego pliku.pmode
Ustawienie uprawnienia.
Wartość zwracana
Te funkcje, jeśli kończy się pomyślnie, zwraca deskryptor pliku do utworzonego pliku.W przeciwnym razie funkcje zwracają wartość –1 i ustawić errno jak pokazano w poniższej tabeli.
errnoustawienie |
Opis |
---|---|
EACCES |
filenameOkreśla istniejący plik tylko do odczytu lub określa katalog, zamiast pliku. |
EMFILE |
Nie więcej deskryptorów plików są dostępne. |
ENOENT |
Nie można odnaleźć określonego pliku. |
Jeśli filename ma wartość NULL, te funkcje wywołania obsługi nieprawidłowy parametr, jak opisano w Sprawdzanie poprawności parametru.Jeśli wykonanie może kontynuować, ustaw te funkcje errno do EINVAL i zwraca –1.
Aby uzyskać więcej informacji na temat tych i innych kodów powrotu, zobacz _doserrno, errno, _sys_errlist i _sys_nerr.
Uwagi
_creat Funkcja tworzy nowy plik lub otwiera i obcina istniejący._wcreatjest to wersja szerokich znaków _creat; filename argument _wcreat jest łańcuch szerokich znaków._wcreati _creat zachowują się identycznie inaczej.
Tekst rodzajowy rutynowych mapowania
Procedura TCHAR.h |
_UNICODE i _MBCS nie zdefiniowane |
_MBCS, definicja |
_UNICODE, definicja |
---|---|---|---|
_tcreat |
_creat |
_creat |
_wcreat |
Jeżeli plik określony przez filename nie istnieje, nowy plik jest tworzony z ustawieniem danym uprawnieniem i jest otwarty do zapisu.Jeżeli plik już istnieje i jego ustawienie uprawnienia pozwala na piśmie, _creat obcina plik do długości 0, niszcząc poprzednia zawartość i otworzy ją do pisania.Ustawienie uprawnienia pmode, stosuje się do nowo utworzonych plików.Nowy plik odbiera ustawienie określone uprawnienie zamknięte po raz pierwszy.Wyrażenie liczby całkowitej pmode zawiera jedną lub obie z manifestu stałe _S_IWRITE i _S_IREAD, określonych w SYS\Stat.h.Gdy podane są zarówno stałych, są połączone z bitowym OR operator (|).pmode Parametr jest ustawiony na jedną z następujących wartości.
Wartość |
Definicja |
---|---|
_S_IWRITE |
Dozwolone pisania. |
_S_IREAD |
Dozwolone czytania. |
_S_IREAD | _S_IWRITE |
Czytanie i pisanie dozwolone. |
Jeśli uprawnienie do zapisu nie jest podany, plik jest tylko do odczytu.Wszystkie pliki są zawsze czytelne; jest niemożliwe nadać uprawnienia tylko do zapisu.Tryby _S_IWRITE i _S_IREAD| _S_IWRITE następnie są równoważne.Pliki otwierane za pomocą _creat są zawsze otwierany w trybie zgodności (patrz _sopen) z _SH_DENYNO.
_creatstosuje się bieżącą maskę uprawnień do pliku, aby pmode przed ustawieniem uprawnienia (zobacz _umask)._creatjest przewidziane przede wszystkim zgodności z bibliotekami poprzedniego.Wywołanie _open z _O_CREAT i _O_TRUNC w oflag parametr jest równoważne z _creat i jest preferowane dla nowego kodu.
Wymagania
Rozpoczęto wykonywanie procedury |
Wymaganego nagłówka |
Opcjonalne nagłówka |
---|---|---|
_creat |
<io.h> |
<sys/types.h>, <sys/stat.h>, <errno.h> |
_wcreat |
<io.h> lub <wchar.h> |
<sys/types.h>, <sys/stat.h>, <errno.h> |
Informacji dotyczących zgodności, zobacz zgodności we wprowadzeniu.
Przykład
// crt_creat.c
// compile with: /W3
// This program uses _creat to create
// the file (or truncate the existing file)
// named data and open it for writing.
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
int fh;
fh = _creat( "data", _S_IREAD | _S_IWRITE ); // C4996
// Note: _creat is deprecated; use _sopen_s instead
if( fh == -1 )
perror( "Couldn't create data file" );
else
{
printf( "Created data file.\n" );
_close( fh );
}
}