Sdílet prostřednictvím


_sopen_s _wsopen_s

Otevře soubor pro sdílení.Tyto verze jsou _sopen a _wsopen s vylepšení zabezpečení popsaným v Funkce zabezpečení v CRT.

errno_t _sopen_s(
   int* pfh,
   const char *filename,
   int oflag,
   int shflag,
   int pmode
);
errno_t _wsopen_s(
   int* pfh,
   const wchar_t *filename,
   int oflag,
   int shflag,
   int pmode,
);

Parametry

  • [výstup]pfh
    Popisovač souboru nebo -1 o chybě.

  • [v]filename
    Název souboru.

  • [v]oflag
    Typ operace povolena.

  • [v]shflag
    Typ sdílení povoleno.

  • [v]pmode
    Nastavení oprávnění.

Vrácená hodnota

Nenulová hodnota vrácená v případě označuje chybu, errno je nastavena na jednu z následujících hodnot.

  • EACCES
    Danou cestu je adresář, nebo je soubor jen pro čtení, ale byl proveden pokus o operaci otevřít pro zápis.

  • EEXIST
    _O_CREAT a _O_EXCL příznaky nebyly zadány, ale filename již existuje.

  • EINVAL
    Invalid oflag, shflag, orpmode argument, or pfh or filename was a null pointer.

  • EMFILE
    Žádné další soubor popisovače k dispozici.

  • ENOENT
    Soubor nebo cesta nebyla nalezena.

Pokud je neplatný argument předaný funkci, je vyvolána neplatný parametr popisovače, jak je popsáno v Ověření parametrů.Pokud je povoleno spuštění pokračovat, errno je nastavena na EINVAL a EINVAL je vrácena.

Další informace o těchto a jiných návratové kódy, viz _doserrno, kód chyby, _sys_errlist a _sys_nerr.

O chybě, bude vrácena -1 až pfh (Pokud pfh je ukazatel s hodnotou null).

Poznámky

_sopen_s Funkce otevře určený soubor filename a připraví soubor sdílené čtení nebo zápisu, podle oflag a shflag._wsopen_sje verze celého znaku _sopen_s; filename argument _wsopen_s je řetězec znaků wide._wsopen_sa _sopen_s chovají jinak shodně.

Obecný Text rutinní mapování

Rutina Tchar.h

_UNICODE a _MBCS není definován

_MBCS, definice

_UNICODE, definice

_tsopen_s

_sopen_s

_sopen_s

_wsopen_s

Výraz celé oflag je tvořen kombinací jedné nebo více manifestu konstanty definované v souboru Fcntl.h.Po dvou nebo více konstanty formuláře argument oflag, jsou kombinovány s (operátor bitový operátor OR | ).

  • _O_APPEND
    Přemístí ukazatel souboru na konec souboru před každou operaci 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ří a otevře nový soubor pro zápis.Pokud určený soubor nemá žádný vliv filename existuje.

  • _O_CREAT| _O_SHORT_LIVED
    Vytvoření souboru jako dočasné a pokud možno nebyla vyprázdněna na disk.

  • _O_CREAT| _O_TEMPORARY
    Vytvoření souboru jako dočasné; soubor je odstraněn po zavření poslední popisovač souboru.

  • _O_CREAT| _O_EXCL
    Vrátí chybovou hodnotu, pokud soubor určený filename existuje.Platí pouze při použití s _O_CREAT.

  • _O_NOINHERIT
    Zabrání vytvoření sdíleného souboru deskriptoru.

  • _O_RANDOM
    Určuje především náhodný přístup z disku.

  • _O_RDONLY
    Otevře soubor pro čtení pouze; Nelze zadat s _O_RDWR nebo _O_WRONLY.

  • _O_RDWR
    Otevře soubor pro čtení i zápis; 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 text (přeložit).(Další informace naleznete v tématu textu a binární režim souboru v/V a fopen.)

  • _O_TRUNC
    Otevře soubor a zkrátí jej nulové délky; soubor musí mít oprávnění k zápisu.Nelze zadat tento příznak s _O_RDONLY._O_TRUNC s _O_CREAT otevře existující soubor nebo vytvoří nový soubor.

    [!POZNÁMKA]

    _O_TRUNC Příznak ničí obsah zadaného souboru.

  • _O_WRONLY
    Otevře soubor pro zápis. Nelze zadat s _O_RDONLY nebo _O_RDWR.

  • _O_U16TEXT
    Otevřete soubor v režimu Unicode UTF-16.

  • _O_U8TEXT
    Otevřete soubor v režimu Unicode UTF-8.

  • _O_WTEXT
    Otevřete soubor v režimu Unicode.

Chcete-li určit režim přístupu k souboru je nutné zadat buď _O_RDONLY, _O_RDWR, nebo _O_WRONLY.Výchozí hodnota pro režim přístupu neexistuje.

Pokud _sopen_s je volána s _O_WRONLY|_O_APPEND (režim Přidat) a _O_WTEXT, _O_U16TEXT, nebo _O_U8TEXT, se nejprve pokusí otevřít soubor pro čtení a zápis, čtení Kusovníku a poté jej znovu otevřete pro psaní pouze.Pokud otevřete soubor pro čtení a zápis se nezdaří, bude soubor pro zápis pouze otevřít a použít výchozí hodnotu pro nastavení režimu Unicode.

Argument shflag je konstanta, skládající se z jedné z následujících konstant manifestu definované v Share.h.

  • _SH_DENYRW
    Zakazuje č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í souboru.

  • _SH_DENYNO
    Povolení čtení a zápis.

pmode Argument je vždy nutné, na rozdíl od v _sopen.Při zadávání _O_CREAT, pokud soubor neexistuje, pmode určuje nastavení oprávnění v souboru, které jsou nastaveny při prvním zavření nového souboru.Jinak pmode je ignorována.pmodeje výraz celé číslo, který obsahuje jeden nebo oba manifestu konstanty _S_IWRITE a _S_IREAD, definované v SYS\Stat.h.Při obou konstanty jsou uvedeny, jsou kombinovány s operátorem bitový operátor OR.Význam pmode je následující.

  • _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 operačním systému Windows jsou všechny soubory čitelné; není možné udělit oprávnění pouze pro zápis.Proto režimy _S_IWRITE a _S_IREAD | _S_IWRITE jsou rovnocenné.

_sopen_spoužije aktuální maska souboru oprávnění k pmode před nastavením oprávnění (viz _umask).

Požadavky

Rutina

Požadované záhlaví

Volitelné záhlaví

_sopen_s

<io.h>

<fcntl.h> <sys/types.h> <sys/stat.h> <share.h>

_wsopen_s

<io.h> nebo <wchar.h>

<fcntl.h> <sys/types.h> <sys/stat.h> <share.h>

Další informace o kompatibilitě v tématu Compatibility v úvodu.

Příklad

Viz příklad pro _locking.

Viz také

Referenční dokumentace

Nízké úrovně I/O

_close

_creat _wcreat

fopen _wfopen

_fsopen _wfsopen

_open, _wopen