_creat
, _wcreat
Tworzy nowy plik. _creat
i _wcreat
zostały przestarzałe; zamiast tego użyj polecenia _sopen_s
, _wsopen_s
.
Składnia
int _creat(
const char *filename,
int pmode
);
int _wcreat(
const wchar_t *filename,
int pmode
);
Parametry
filename
Nazwa nowego pliku.
pmode
Ustawienie uprawnień.
Wartość zwracana
Te funkcje, jeśli się powiedzie, zwracają deskryptor pliku do utworzonego pliku. W przeciwnym razie funkcje zwracają wartość -1 i ustawiają errno
, jak pokazano w poniższej tabeli.
errno wartość |
opis |
---|---|
EACCES |
filename określa istniejący plik tylko do odczytu lub określa katalog zamiast pliku. |
EMFILE |
Nie są dostępne deskryptory plików. |
ENOENT |
Nie można odnaleźć określonego pliku. |
Jeśli filename
to NULL
, te funkcje wywołują nieprawidłową procedurę obsługi parametrów, zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonanie może kontynuować, te funkcje są ustawione errno
na EINVAL
wartość i zwracają wartość -1.
Aby uzyskać więcej informacji na temat tych i innych kodów powrotnych, zobacz errno
, _doserrno
, _sys_errlist
i _sys_nerr
.
Uwagi
Funkcja _creat
tworzy nowy plik lub otwiera go i obcina istniejącą. _wcreat
jest wersją szerokoznakową ; _creat
argument to filename
_wcreat
ciąg o szerokim znaku. _wcreat
i _creat
zachowywać się identycznie inaczej.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby go zmienić, zobacz Stan globalny w CRT.
Mapowania procedur tekstu ogólnego
Procedura tchar.h | _UNICODE i _MBCS niezdefiniowane |
_MBCS zdefiniowany |
_UNICODE zdefiniowany |
---|---|---|---|
_tcreat |
_creat |
_creat |
_wcreat |
Jeśli plik określony przez filename
program nie istnieje, zostanie utworzony nowy plik z danym ustawieniem uprawnień i zostanie otwarty do zapisu. Jeśli plik już istnieje, a jego ustawienie uprawnień zezwala na zapisywanie, _creat
obcina plik do długości 0, niszcząc poprzednią zawartość, i otwiera go do zapisu. Ustawienie uprawnień , pmode
dotyczy tylko nowo utworzonych plików. Nowy plik otrzymuje określone ustawienie uprawnień po jego zamknięciu po raz pierwszy. Wyrażenie pmode
całkowite zawiera jedną lub obie stałe _S_IWRITE
manifestu i _S_IREAD
, zdefiniowane w pliku SYS\Stat.h. Gdy obie stałe są podane, są one łączone z bitowym lub operatorem ( |
). Parametr pmode
jest ustawiony na jedną z następujących wartości.
Wartość | Definicja |
---|---|
_S_IWRITE |
Dozwolone pisanie. |
_S_IREAD |
Dozwolone jest odczytywanie. |
_S_IREAD | _S_IWRITE |
Dozwolone jest odczytywanie i zapisywanie. |
Jeśli nie podano uprawnień do zapisu, plik jest tylko do odczytu. Wszystkie pliki są zawsze czytelne; nie można nadać uprawnień tylko do zapisu. Tryby _S_IWRITE
, a _S_IREAD | _S_IWRITE
następnie są równoważne. Pliki otwierane przy użyciu _creat
są zawsze otwierane w trybie zgodności (zobacz _sopen
) z _SH_DENYNO
.
_creat
stosuje bieżącą maskę uprawnień do pliku przed pmode
ustawieniem uprawnień (zobacz _umask
). _creat
zapewniana jest przede wszystkim zgodność z poprzednimi bibliotekami. Wywołanie metody _open
z parametrem _O_CREAT
i _O_TRUNC
w parametrze oflag
jest równoważne _creat
i jest preferowane dla nowego kodu.
Wymagania
Procedura | Wymagany nagłówek | Opcjonalny nagłówek |
---|---|---|
_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> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
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 );
}
}
Created data file.
Zobacz też
We/Wy niskiego poziomu
_chmod
, _wchmod
_chsize
_close
_dup
, _dup2
_open
, _wopen
_sopen
, _wsopen
_umask