_fsopen _wfsopen
Sdílení souborů otevře datový proud.
FILE *_fsopen(
const char *filename,
const char *mode,
int shflag
);
FILE *_wfsopen(
const wchar_t *filename,
const wchar_t *mode,
int shflag
);
Parametry
filename
Název souboru otevřený.mode
Typ přístupu povolen.shflag
Typ sdílení povoleno.
Vrácená hodnota
Každá z těchto funkcí vrátí ukazatel na datový proud.nulový ukazatel hodnota označuje chyba.Pokud filename nebo mode je NULL nebo prázdný řetězec, tyto funkce vyvolat neplatnýpopisovačparametr , jak je popsáno v Ověření parametrů. Pokud je povoleno spuštění pokračovat, vrátí tyto funkce NULL a errno na EINVAL.
Další informace o těchto a jiných kódů chyba naleznete v _doserrno, kód chyby, _sys_errlist a _sys_nerr.
Poznámky
_fsopen funkce otevře určený soubor filename jako proud a připraví soubor pro následné sdílené čtení nebo zápisu, podle definice v režimu a shflag argumenty. _wfsopenje celý znak verze _fsopen; filename a mode argumenty k _wfsopen jsou celý znak řetězce._wfsopena _fsopen chovají jinak shodně.
Řetězec znaků mode Určuje typ souboru, požadovaný přístup podle následující tabulky.
Termín |
Definice |
---|---|
"r" |
Otevře pro čtení.Pokud soubor neexistuje nebo nemůže být nalezen _fsopen volání se nezdaří. |
"w" |
Otevře prázdný soubor pro zápis.Pokud daný soubor existuje, jsou zničeny jeho obsah. |
"a" |
Otevře pro zápis na konci souboru (připojení); nejprve vytvoří soubor, pokud neexistuje. |
"r+" |
Otevře pro čtení i zápis.(Musí existovat soubor.) |
"w+" |
Otevře prázdný soubor pro čtení i zápis.Pokud daný soubor existuje, jsou zničeny jeho obsah. |
"a+" |
Otevře pro čtení a připojením; nejprve vytvoří soubor, pokud neexistuje. |
Použití "w" a "w+" typy opatrně, jako zničí existující soubory.
Při otevření souboru s "a" nebo "a+" přístup typu, všechny zápis operací dojít na konci souboru.ukazatel souboru je můžete přemístit pomocí fseek nebo rewind, ale vždy přesunuta zpět do konce souboru před žádný zápis operace provedena.Proto nelze přepsat existující data.Když "r+", "w+", nebo "a+" je určen typ přístupu, povoleno čtení i zápis (soubor je označováno jako otevřený pro aktualizace).Však při přepnutí mezi čtení a zápis, musí být zasahujících fsetpos, fseek, nebo Převinout operace.Aktuální pozice lze určit pro fsetpos nebo fseek operace podle potřeby.Vedle výše uvedených hodnot, jeden z následujících znaků mohou být součástí mode určit režim překladu pro nové řádky a pro správu souborů.
Termín |
Definice |
---|---|
t |
Otevře soubor v režimu text (přeložit).V tomto režimu přepravu return–čára krmiv (CR-LF) kombinace jsou přeloženy do kanály jednoho čára (LF) na vstupu a kombinace CR-LF na výstup se přeložit znaky LF.Také CTRL + Z, je interpretován jako znak konce souboru na vstupu.Otevřen pro čtení nebo pro čtení nebo zápis souborů _fsopen CTRL + Z na konci souboru zjistí a odebere, pokud je to možné.Je důvodem, že pomocí fseek a ftell přesouvat v rámci souboru, který může způsobit končí CTRL + Z fseek chování nesprávně poblíž konce souboru. |
b |
Otevře soubor v binary režimu (nepřeložený); výše uvedené překlady potlačeny. |
S |
Určuje, že do mezipaměti je optimalizována pro, ale není omezen na sekvenční přístup z disku. |
R |
Určuje, že do mezipaměti je optimalizována pro, ale není omezen na náhodný přístup z disku. |
T |
Určuje jako dočasný soubor.Pokud možno nejsou zapsány na disk. |
D |
Určuje jako dočasný soubor.Po zavření poslední ukazatel souboru je odstraněna. |
Pokud t nebo b není uveden v mode, režim překladu je definován výchozí režim proměnná**_fmode**. Pokud t nebo b předponou je argument, funkce se nezdaří a vrátí NULL.Diskuse textu a binary režim, viz textu a binární režim souboru v/V.
argument shflag je konstanta, skládající se z jedné z následujících manifest konstant, definované v Share.h.
Termín |
Definice |
---|---|
_SH_COMPAT |
Nastaví režim kompatibility 16bitových aplikací. |
_SH_DENYNO |
Povolení čtení a zápis. |
_SH_DENYRD |
Odepře oprávnění ke čtení souboru. |
_SH_DENYRW |
Zakazuje čtení a zápis do souboru. |
_SH_DENYWR |
Odepře přístup pro zápis do souboru. |
Obecný Text rutinní mapování
Rutina Tchar.h |
_UNICODE a _MBCS není definován |
_MBCS, definice |
_UNICODE, definice |
---|---|---|---|
_tfsopen |
_fsopen |
_fsopen |
_wfsopen |
Požadavky
Function |
Požadované hlavička |
Volitelné záhlaví |
---|---|---|
_fsopen |
<stdio.h> |
<share.h> manifest konstanty pro shflag parametr. |
_wfsopen |
<stdio.h> nebo <wchar.h> |
<share.h> manifest konstanty pro shflag parametr. |
Příklad
// crt_fsopen.c
#include <stdio.h>
#include <stdlib.h>
#include <share.h>
int main( void )
{
FILE *stream;
// Open output file for writing. Using _fsopen allows us to
// ensure that no one else writes to the file while we are
// writing to it.
//
if( (stream = _fsopen( "outfile", "wt", _SH_DENYWR )) != NULL )
{
fprintf( stream, "No one else in the network can write "
"to this file until we are done.\n" );
fclose( stream );
}
// Now others can write to the file while we read it.
system( "type outfile" );
}
Ekvivalent v rozhraní .NET Framework
System::IO::FileStream::FileStream