Sdílet prostřednictvím


_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 soubor otevřít.

  • mode
    Typ oprávněného přístupu.

  • shflag
    Typ sdílení povoleno.

Vrácená hodnota

Každá z těchto funkcí vrací ukazatel na datový proud.Hodnota nulového ukazatele indikuje chybu.Pokud filename nebo mode je NULL nebo prázdný řetězec, tyto funkce vyvolat obslužnou rutinu neplatný parametr, jak je popsáno v Ověření parametru.Pokud provádění může pokračovat, vrátí funkce NULL a nastaví errno na EINVAL.

Další informace o těchto a dalších chybových kódech naleznete v části _doserrno, errno, _sys_errlist, and _sys_nerr.

Poznámky

_fsopen Funkce otevře určený soubor filename jako proud a připraví soubor pro následující sdílené čtení nebo zápisu, podle režimu a shflag argumenty._wfsopenje verze širokého znaku _fsopen; filename a mode argumenty pro _wfsopen jsou řetězci širokého znaku._wfsopen a _fsopen se jinak chovají stejně.

Řetězec znaků mode Určuje typ přístupu pro soubor, jak je znázorněno v následující tabulce.

Termín

Definice

"r"

Otevře pro čtení.Pokud soubor neexistuje nebo nemůže být nalezen, volání _fsopen se nezdaří.

"w"

Otevře prázdný soubor pro zápis.Pokud daný soubor existuje, jeho obsah je zničen.

"a"

Otevře pro zápis na konci souboru (připojení); nejprve vytvoří soubor, pokud již neexistuje.

"r+"

Otevře pro čtení i zápis. (Soubor musí existovat.)

"w+"

Otevře prázdný soubor pro čtení i zápis.Pokud daný soubor existuje, jeho obsah je zničen.

"a+"

Otevře pro čtení a přidávání; nejprve vytvoří soubor, pokud již neexistuje.

Typy "w" a "w+" je třeba používat opatrně, protože mohou poškodit existující soubory.

Při otevření souboru s "a" nebo "a+" přístup k typu, všechny zápis operace dojít na konec souboru.Ukazatel na soubor může být přemístěny pomocí fseek nebo rewind, ale je vždy přesunuta zpět na konec souboru před libovolný zápis operace provádí.Tudíž nemohou být žádná existující data přepsána.Když "r+", "w+", nebo "a+" je nastaven typ přístupu, je povoleno čtení i zápis (soubor se říká být otevřeny pro aktualizaci).Však při přepnutí mezi čtení a zápis, musí existovat podílející se fsetpos, fseek, nebo vzad operace.Podle potřeby lze určit aktuální pozici operace fsetpos nebo fseek.Kromě výše uvedených hodnot, jeden z následujících znaků mohou být zahrnuty v mode Chcete-li určit režim překladu pro nové řádky a pro správu souborů.

Termín

Definice

t

Otevře soubor v režimu textu (přeložit).V tomto režimu carriage return – řádek krmné (CR-LF) kombinace jsou přeloženy do kanálů jeden řádek (LF) na vstupu a LF znaky jsou převedeny na CR-LF kombinace na výstupu.Příkaz CTRL + Z je na vstupu interpretován jako znak konce souboru.Otevřen pro čtení nebo čtení/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 Chcete-li přesunout v rámci souboru může způsobit, že končí CTRL + Z fseek na konci souboru fungovat správně.

b

Otevře soubor v binárním režimu (nepřeložený); nad překlady jsou potlačeny.

S

Určuje, zda je mezipaměť optimalizovaná, ale nikoliv omezená, pro disk se sekvenčním přístupem.

R

Určuje, zda je mezipaměť optimalizovaná, ale nikoliv omezená, pro disk s náhodným přístupem.

T

Označí soubor jako dočasný.Pokud je to možné, není zapsán na disk.

D

Označí soubor jako dočasný.Je smazán po uzavření posledního ukazatele na soubor.

Pokud t nebo b není uveden v mode, režim překladu je definován výchozí režim proměnné _fmode.Pokud je t nebo b předponou argumentu, funkce selže a vrátí NULL.Informace o textu a binárních režimech naleznete v tématu Text a vstup-výstupní režim binárního souboru.

Argument shflag je konstantní výraz skládající se z jedné z následujících konstant manifestu, 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řít přístup pro čtení souboru.

_SH_DENYRW

Odepře oprávnění pro čtení a zápis do souboru.

_SH_DENYWR

Odepřít přístup pro zápis do souboru.

Rutinní mapování obecného textu

Rutina Tchar.h

_UNICODE a _MBCS nejsou definovány

_MBCS definováno

_UNICODE definováno

_tfsopen

_fsopen

_fsopen

_wfsopen

Požadavky

Funkce

Požadované záhlaví

Volitelná záhlaví

_fsopen

<stdio.h>

<Share.h>

Pro konstanta manifestu pro shflag parametr.

_wfsopen

<stdio.h> nebo <wchar.h>

<Share.h>

Pro konstanta manifestu 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

Viz také

Referenční dokumentace

I/O proudu

fclose, _fcloseall

_fdopen, _wfdopen

ferror

_fileno

fopen, _wfopen

freopen, _wfreopen

_open, _wopen

_setmode

_sopen, _wsopen