Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Vytvoří nový soubor. _creata _wcreat byly zastaralé; místo toho použijte_sopen_s_wsopen_s.
Syntaxe
int _creat(
const char *filename,
int pmode
);
int _wcreat(
const wchar_t *filename,
int pmode
);
Parametry
filename
Název nového souboru
pmode
Nastavení oprávnění.
Vrácená hodnota
Pokud jsou tyto funkce úspěšné, vrátí do vytvořeného souboru popisovač souboru. V opačném případě funkce vrátí hodnotu -1 a nastaví errno se, jak je znázorněno v následující tabulce.
errno hodnota |
Popis |
|---|---|
EACCES |
filename určuje existující soubor jen pro čtení nebo určuje adresář místo souboru. |
EMFILE |
Nejsou k dispozici žádné další popisovače souborů. |
ENOENT |
Zadaný soubor nebyl nalezen. |
Pokud filename ano NULL, tyto funkce vyvolávají neplatnou obslužnou rutinu parametru, jak je popsáno v ověření parametru. Pokud je spuštění povoleno pokračovat, tyto funkce jsou nastavené errno na EINVAL hodnotu -1 a vrátí hodnotu -1.
Další informace o těchto a dalších návratových kódech naleznete v tématu , , , a_sys_nerr . _sys_errlist_doserrnoerrno
Poznámky
Funkce _creat vytvoří nový soubor nebo se otevře a zkrátí existující soubor. _wcreatje verze širokého znaku _creatfilename ; argument je _wcreat řetězec širokého znaku. _wcreat a _creat chovat se stejně jinak.
Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Pokud ho chcete změnit, přečtěte si téma Globální stav v CRT.
Mapování rutin obecného textu
| Rutina Tchar.h | _UNICODE a _MBCS není definován |
_MBCS definovaný |
_UNICODE definovaný |
|---|---|---|---|
_tcreat |
_creat |
_creat |
_wcreat |
Pokud soubor zadaný filename pomocí neexistuje, vytvoří se nový soubor s daným nastavením oprávnění a otevře se pro zápis. Pokud soubor již existuje a jeho nastavení oprávnění umožňuje zápis, _creat zkrátí soubor na délku 0, zničí předchozí obsah a otevře ho pro zápis. Nastavení oprávnění se pmodevztahuje pouze na nově vytvořené soubory. Nový soubor obdrží zadané nastavení oprávnění po prvním zavření. Celočíselné výraz pmode obsahuje jednu nebo obě konstanty _S_IWRITE manifestu a _S_IREADdefinované v sys\Stat.h. Pokud jsou obě konstanty zadané, spojí se s bitovým operátorem nebo operátorem ( | ). Parametr pmode je nastaven na jednu z následujících hodnot.
| Hodnota | Definice |
|---|---|
_S_IWRITE |
Zápis je povolený. |
_S_IREAD |
Čtení povoleno. |
_S_IREAD | _S_IWRITE |
Čtení a psaní je povoleno. |
Pokud oprávnění k zápisu není uděleno, soubor je jen pro čtení. Všechny soubory jsou vždy čitelné; Není možné udělit oprávnění jen pro zápis. Režimy _S_IWRITE a _S_IREAD | _S_IWRITE pak jsou ekvivalentní. Soubory otevřené pomocí _creat jsou vždy otevřeny v režimu kompatibility (viz _sopen) s _SH_DENYNO.
_creat použije aktuální masku oprávnění k souboru před pmode nastavením oprávnění (viz _umask). _creat je poskytován především kvůli kompatibilitě s předchozími knihovnami. Volání _open s _O_CREAT a _O_TRUNC v parametru oflag je ekvivalentní _creat a je vhodnější pro nový kód.
Požadavky
| Rutina | Požadovaný hlavičkový soubor | Volitelné záhlaví |
|---|---|---|
_creat |
<io.h> | <sys/types.h>, <sys/stat.h>, <errno.h> |
_wcreat |
<io.h> nebo <wchar.h> | <sys/types.h>, <sys/stat.h>, <errno.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Příklad
// 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.
Viz také
Vstupně-výstupní operace nízké úrovně
_chmod, _wchmod
_chsize
_close
_dup, _dup2
_open, _wopen
_sopen, _wsopen
_umask