Sdílet prostřednictvím


_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.

Viz také

Referenční dokumentace

I/O nízké úrovně

_close

_creat, _wcreat

fopen, _wfopen

_fsopen, _wfsopen

_open, _wopen