_creat _wcreat
Vytvoří nový soubor._creata _wcreat již nepoužívá; použít _sopen_s _wsopen_s místo.
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
Tyto funkce v případě úspěchu vrátit popisovač souboru vytvořeného souboru.Jinak vrátí funkce –1 a errno podle následující tabulky.
errnonastavení |
Description |
---|---|
EACCES |
filenameUrčuje existující soubor jen pro čtení nebo adresář namísto souboru. |
EMFILE |
Nejsou k dispozici žádné další popisovače souboru. |
ENOENT |
Zadaný soubor nebyl nalezen. |
Pokud filename hodnotu NULL, tyto funkce vyvolat popisovač neplatný parametr, jak je popsáno v Ověření parametrů.Pokud je povoleno spuštění pokračovat, nastavit tyto funkce errno na EINVAL a vrátí -1.
Další informace o těchto a jiných návratové kódy, viz _doserrno, kód chyby, _sys_errlist a _sys_nerr.
Poznámky
_creat Funkce vytvoří nový soubor nebo otevře a zkrátí existující._wcreatje verze celého znaku _creat; filename argument _wcreat je řetězec znaků wide._wcreata _creat chovají jinak shodně.
Obecný Text rutinní mapování
Rutina Tchar.h |
_UNICODE a _MBCS není definován |
_MBCS, definice |
_UNICODE, definice |
---|---|---|---|
_tcreat |
_creat |
_creat |
_wcreat |
Pokud soubor určený filename neexistuje, nový soubor je vytvořen pomocí nastavení dané oprávnění a je otevřen pro zápis.Pokud soubor již existuje a jeho nastavení oprávnění umožňuje psaní, _creat zkrátí délku 0, zničení předchozí obsah souboru a otevře pro zápis.Nastavení oprávnění pmode, týká se pouze nově vytvořených souborů.Po zavření první, obdrží nový soubor nastavení zadané oprávnění.Výraz celé pmode obsahuje jeden nebo oba manifestu konstanty _S_IWRITE a _S_IREAD, definované v SYS\Stat.h.Při obou konstanty jsou uvedeny, jsou spojeny s bitového OR () operátor**|**).pmode Parametr nastaven na jednu z následujících hodnot.
Value |
Definice |
---|---|
_S_IWRITE |
Zápis povolen. |
_S_IREAD |
Čtení povoleny. |
_S_IREAD | _S_IWRITE |
Čtení a zápis povolen. |
Pokud oprávnění k zápisu není uvedena, je soubor jen pro čtení.Všechny soubory jsou vždy čitelný; je nemožné poskytnout oprávnění jen pro zápis.Režimy _S_IWRITE a _S_IREAD| _S_IWRITE pak jsou rovnocenné.Soubory otevřené pomocí _creat vždy otevřen v režimu kompatibility (viz _sopen) s _SH_DENYNO.
_creatpoužije aktuální maska souboru oprávnění k pmode před nastavením oprávnění (viz _umask)._creatje k dispozici kvůli kompatibilitě s předchozí knihoven.Volání _open s _O_CREAT a _O_TRUNC v oflag parametr je ekvivalentní _creat a je vhodnější pro nový kód.
Požadavky
Rutina |
Požadované záhlaví |
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ě v tématu Compatibility v úvodu.
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 );
}
}