_sopen _wsopen
Otevře soubor pro sdílení.Bezpečnější verze tyto funkce jsou k dispozici; see _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
Typ operace povolena.shflag
Typ sdílení povoleno.pmode
Nastavení oprávnění.
Vrácená hodnota
Každá z těchto funkcí vrátí popisovač souboru otevřeného souboru.
Pokud filename nebo oflag je NULL ukazatele, nebo pokud oflag nebo shflag není v rámci platný rozsah hodnot parametr neplatný popisovač je vyvolána, jak je popsáno v Ověření parametrů.Pokud je povoleno spuštění pokračovat, vrátí tyto funkce hodnotu -1 a errno 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_CREATa _O_EXCL příznaky nebyly zadány, ale filename již existuje.EINVAL
Neplatný oflag nebo shflag argument.EMFILE
Žádné další soubor popisovače k dispozici.ENOENT
Soubor nebo cesta nebyla nalezena.
Další informace o těchto a jiných návratové kódy, viz _doserrno, kód chyby, _sys_errlist a _sys_nerr.
Poznámky
_sopen Funkce otevře určený soubor filename a připraví soubor sdílené čtení nebo zápisu, podle oflag a shflag._wsopenje verze celého znaku _sopen; filename argument _wsopen je řetězec znaků wide._wsopena _sopen chovají jinak shodně.
Obecný Text rutinní mapování
Rutina Tchar.h |
_UNICODE a _MBCS není definován |
_MBCS, definice |
_UNICODE, definice |
---|---|---|---|
_tsopen |
_sopen |
_sopen |
_wsopen |
Výraz celé oflag je tvořen kombinací jedné nebo více z následujících konstant manifestu 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.pmode Argument je vyžadován při _O_CREAT je určena._O_CREAT| _O_SHORT_LIVED
Vytvoření souboru jako dočasné a pokud možno nebyla vyprázdněna na disk.pmode Argument je vyžadován při _O_CREAT je určena._O_CREAT| _O_TEMPORARY
Vytvoření souboru jako dočasné; soubor je odstraněn po zavření poslední popisovač souboru.pmode Argument je vyžadován při _O_CREAT je určena._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_TRUNCs _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 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 vyžadován pouze v případě, že jeden Určuje _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é.
_sopenpouž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 |
<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ě v tématu Compatibility v úvodu.
Příklad
Viz příklad pro _locking.
Ekvivalent v rozhraní .NET Framework
Nelze použít Použijte volání funkce standardní C, PInvoke. Další informace naleznete v tématu Příklady vyvolat platformu.