Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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_errlisti _sys_nerr.
Uwagi
Funkcja _creat tworzy nowy plik lub otwiera go i obcina istniejącą. _wcreat jest wersją szerokoznakową ; _creatargument 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ń , pmodedotyczy 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