_sopen, _wsopen
Otevře soubor pro sdílení.Bezpečnější verze tyto funkce jsou k dispozici – viz _sopen_s, _wsopen_s.
int _sopen( const char *filename, int oflag, int shflag [, int pmode ] ); int _wsopen( const wchar_t *filename, int oflag, int shflag [, int pmode ] );
Parametry
filename
Název souboru.oflag
Druh operace, které jsou povoleny.shflag
Druh sdílení povoleny.pmode
Nastavení oprávnění.
Vrácená hodnota
Každá z těchto funkcí, vrátí se popisovač souboru pro otevřeného souboru.
Pokud filename nebo oflag je NULL ukazatel myši, nebo pokud oflag nebo shflag je v rámci platný rozsah hodnot není volána obslužná rutina neplatný parametr, jak je popsáno v Ověření parametru.Pokud je povoleno spuštění chcete-li pokračovat, tyto funkce vracejí -1 a nastavte errno na jeden z následujících hodnot.
EACCES
Zadaná cesta je adresář, nebo soubor je jen pro čtení, ale došlo k pokusu o operaci otevřít pro zápis.EEXIST
_O_CREATa _O_EXCL příznaky nebyly zadány, ale filename již existuje.EINVAL
Neplatný oflag nebo shflag argument.EMFILE
Nejsou k dispozici žádné další popisovače souboru.ENOENT
Soubor nebo cesta nebyla nalezena.
Další informace o těchto a dalších návratové kódy naleznete v tématu _doserrno, kód chyby, _sys_errlist a _sys_nerr.
Poznámky
_sopen Funkce otevře do souboru určeného parametrem filename a připraví soubor pro sdílené čtení nebo zápisu, definované v oflag a shflag._wsopenje verze širokého znaku _sopen; filename argumentu _wsopen obsahuje řetězec širokého znaku.Funkce _wsopen a _sopen se jinak chovají stejně.
Mapování rutin obecného textu
Rutina Tchar.h |
_UNICODE a _MBCS nejsou definovány. |
_MBCS definováno |
_UNICODE definováno |
---|---|---|---|
_tsopen |
_sopen |
_sopen |
_wsopen |
Výraz celé číslo oflag je tvořen kombinací jednu nebo více z následujících manifestu konstant, které jsou definovány v < fcntl.h >.Pokud dvě nebo více konstanty form argument oflag, jsou kombinovány s na operátor bitová OR ()| ).
_O_APPEND
Přemístí ukazatel souboru na konec souboru před všechny operace zápisu._O_BINARY
Otevře soubor v binárním režimu (nepřeložený).(Viz fopen popis binární režim.)_O_CREAT
Vytvoří soubor a otevře ji pro zápis.Akce nemá vliv, pokud soubor určený parametrem filename existuje.pmode Argument je vyžadován v případě _O_CREAT je zadán._O_CREAT | _O_SHORT_LIVED
Vytvoří soubor jako dočasné a pokud je to možné není vyprázdnit na disk.pmode Argument je vyžadován v případě _O_CREAT je zadán._O_CREAT | _O_TEMPORARY
Vytvoří soubor jako dočasné; soubor je odstraněn při zavření poslední popisovač souboru.pmode Argument je vyžadován v případě _O_CREAT je zadán._O_CREAT | _O_EXCL
Vrátí hodnotu Chyba, pokud soubor určený proměnnou filename existuje.Použije pouze při použití s _O_CREAT._O_NOINHERIT
Brání vytvoření sdílený soubor deskriptoru._O_RANDOM
Určuje především náhodný přístup z disku._O_RDONLY
Otevře soubor jen pro čtení.Nelze zadat s _O_RDWR nebo _O_WRONLY._O_RDWR
Otevře soubor pro čtení i zápisu.Nelze zadat s _O_RDONLY nebo _O_WRONLY._O_SEQUENTIAL
Určuje především sekvenční přístup z disku._O_TEXT
Otevře soubor v režimu textu (přeložit).(Další informace naleznete v tématu Text a vstupně-výstupní soubor binární režim a fopen.)_O_TRUNC
Otevře soubor a oříznut na nulu délku; soubor musí mít oprávnění k zápisu.Nelze zadat s _O_RDONLY._O_TRUNCpoužít s _O_CREAT otevře existující soubor nebo vytvoří soubor.[!POZNÁMKA]
_O_TRUNC Příznak ničí obsah zadaného souboru.
_O_WRONLY
Otevře soubor pro zápis pouze.Nelze zadat s _O_RDONLY nebo _O_RDWR._O_U16TEXT
Otevře soubor v režimu Unicode UTF-16._O_U8TEXT
Otevře soubor v režimu Unicode UTF-8._O_WTEXT
Otevře soubor v režimu Unicode.
Chcete-li určit režim přístup k souboru, je nutné zadat buď _O_RDONLY, _O_RDWR, nebo _O_WRONLY.Není k dispozici žádná výchozí hodnota pro režim přístupu.
Při otevření souboru v režimu Unicode pomocí _O_WTEXT, _O_U8TEXT, nebo _O_U16TEXT, vstupní funkce převedení dat, který je načítán ze souboru do UTF-16 data uložená jako typ wchar_t.Funkce, které zápis do souboru otevřít v režimu Unicode očekávané vyrovnávací paměti, které obsahují UTF-16 data uložená jako typ wchar_t.Pokud soubor s kódováním jako UTF-8 je Jakmile je zapsán a obsah kódovaný UTF-8 v souboru je přeložit na UTF-16, pokud je pro čtení dat UTF-16 přeložit na UTF-8.Pokus o čtení nebo zápis lichý počet bajtů v režimu Unicode způsobí, že chyba ověření parametru.Při čtení nebo zápisu dat, který je uložen ve svém programu jako UTF-8, použijte namísto režimu Unicode režim text nebo binární soubor.Zodpovídáte za jakékoli požadované kódování překladu.
If _sopen is called with _O_WRONLY | _O_APPEND (append mode) and _O_WTEXT, _O_U16TEXT, or _O_U8TEXT, it first tries to open the file for reading and writing, read the BOM, then reopen it for writing only.Pokud otevírání souboru pro čtení a zápis nezdaří, otevře soubor pro zápis pouze a použije výchozí hodnotu pro nastavení režimu Unicode.
Argument shflag je konstantní výraz, který se skládá z jedné z následujících manifestu konstant, které jsou definovány v < share.h >.
_SH_DENYRW
Odepře přístup pro čtení a zápis do souboru._SH_DENYWR
Odepře přístup pro zápis do souboru._SH_DENYRD
Odepře přístup pro čtení do souboru._SH_DENYNO
Povolení čtení a zápis.
pmode Argument je třeba zadat pouze v případě _O_CREAT je zadán.Pokud soubor neexistuje, pmode určuje nastavení oprávnění souboru, které jsou nastaveny při prvním zavření nový soubor.V opačném pmode je ignorována.pmodeje celé číslo výraz, který obsahuje jeden nebo oba z manifestu konstant _S_IWRITE a _S_IREAD, které jsou definovány v < sys\stat.h >.Když jsou uvedeny obě konstanty, jsou spojeny s operátorem bitová OR.Význam pmode je následujícím způsobem.
_S_IWRITE
Zápis povolen._S_IREAD
Při čtení povoleny._S_IREAD | _S_IWRITE
Čtení a zápis povolen.
Není-li oprávnění k zápisu zadán, soubor je jen pro čtení.Všechny soubory v operačním systému Windows jsou čitelnou; není možné udělit oprávnění jen pro zápis.Proto režimy _S_IWRITE a _S_IREAD | _S_IWRITE jsou ekvivalentní.
_sopenpoužije aktuální maska souboru oprávnění k pmode předtím, než jsou oprávnění nastavena.(Viz _umask.)
Požadavky
Rutina |
Požadovaný hlavičkový soubor |
Volitelné záhlaví |
---|---|---|
_sopen |
< io.h > |
< fcntl.h >, < sys\types.h >, < sys\stat.h >, < share.h > |
_wsopen |
< io.h > nebo < wchar.h > |
< fcntl.h >, < sys\types.h >, < sys\stat.h >, < share.h > |
Další informace o kompatibilitě naleznete v tématu Kompatibilita.
Příklad
Podívejte se na příklad pro _locking.
Ekvivalent v rozhraní .NET Framework
Nelze použít. Pokud chcete volat standardní funkci jazyka C, použijte PInvoke. Další informace naleznete v tématu Příklady vyvolání platformy.