_fsopen, _wfsopen
Otwiera strumienia z udostępniania plików.
FILE *_fsopen(
const char *filename,
const char *mode,
int shflag
);
FILE *_wfsopen(
const wchar_t *filename,
const wchar_t *mode,
int shflag
);
Parametry
filename
Nazwa pliku do otwarty.mode
Typ dostępu jest dozwolone.shflag
Typ udostępnianie dozwolone.
Wartość zwracana
Każda z tych funkcji zwraca wskaźnik do strumienia.Wartość pusty wskaźnik wskazuje na błąd.Jeśli filename lub mode jest NULL lub pusty ciąg, te funkcje WYWOŁAJ nieprawidłowyparametr programu obsługi, zgodnie z opisem w Sprawdzanie poprawności parametru. Jeśli wykonanie może kontynuować, funkcje te zwracają NULL i errno do EINVAL.
Aby uzyskać więcej informacji na temat tych i innych kodów błędów, zobacz _doserrno, errno, _sys_errlist i _sys_nerr.
Uwagi
_fsopen funkcja otwiera w pliku określonym przez filename jako strumień i przygotowuje plik do kolejnych udostępnionego czytania lub pisania, zgodnie z definicją w trybie i shflag argumentów. _wfsopenjest to wersja szerokich znaków _fsopen; filename i mode argumenty funkcji _wfsopen są ciągami szerokich znaków._wfsopeni _fsopen zachowują się identycznie inaczej.
Ciąg znaków mode określa typ dostępu zażądał pliku, jak pokazano w poniższej tabeli.
Termin |
Definicja |
---|---|
"r" |
Zostanie otwarty do odczytu.Jeśli plik nie istnieje lub nie zostanie znaleziony, _fsopen wywołanie kończy się niepowodzeniem. |
"w" |
Otwiera pusty plik do zapisu.Jeśli dany plik istnieje, jego zawartość są niszczone. |
"a" |
Zostanie otwarty do zapisu na końcu pliku (dołączanie); tworzy plik najpierw, jeżeli nie istnieje. |
"r+" |
Otwiera zarówno Odczyt i zapis.(Plik musi istnieć). |
"w+" |
Otwiera pusty plik do zarówno odczytu i zapisu.Jeśli dany plik istnieje, jego zawartość są niszczone. |
"a+" |
Zostanie otwarty do odczytu i dołączanie; tworzy plik najpierw, jeżeli nie istnieje. |
Użyj "w" i "w+" typy z opieki, jak ich zniszczenia, aby istniejące pliki.
Przy otwieraniu pliku z "a" lub "a+" dostępu typu zapis wszystkich operacji występuje na końcu pliku.wskaźnik pliku można prawymi za pomocą fseek lub rewind, ale jest zawsze przeniesiono go z powrotem do końca pliku przed napisać dowolną czynność jest przeprowadzana.W ten sposób nie można zastąpić istniejące dane.Gdy "r+", "w+", lub "a+" jest określony typ dostępu, zarówno odczytywania i zapisywania są dozwolone (plik jest określane jako otwarty for aktualizacja).Jednak podczas przełączania między odczytu i zapisu, musi istnieć interwencji fsetpos, fseek, lub przewijania do tyłu operacji.Bieżąca pozycja mogą być określone dla fsetpos lub fseek operacji, jeśli jest to konieczne.Oprócz powyższych wartości jednego z następujących znaków można zawarte w mode określić tryb translacji dla nowych wierszy i zarządzanie plikami.
Termin |
Definicja |
---|---|
t |
Otwiera plik w trybie tekstowym (tłumaczenie).W tym trybie przewozu return–line paszy kombinacji (CR LF) zostały przetłumaczone na pojedynczy wiersz źródła danych (LF) na wejściu i znaki LF są tłumaczone na kombinacji CR LF na wyjściu.Również CTRL + Z jest interpretowana jako znaku końca pliku na dane wejściowe.W przypadku plików otwartych do odczytu lub zapisu/odczytu _fsopen sprawdza, czy klawisze CTRL + Z końcem pliku i usuwa go, jeśli to możliwe.Robi się, ponieważ korzysta z fseek i ftell Przenieś plik, który może spowodować kończy się na CTRL + Z fseek do niewłaściwe w pobliżu końca pliku. |
b |
Otwiera plik w trybie dane binarne (nieprzetłumaczony); Powyższe tłumaczenia są pomijane. |
S |
Określa, że buforowanie jest zoptymalizowany pod kątem, ale nie są ograniczone do dostępu sekwencyjnego z dysku. |
R |
Określa, że buforowanie jest zoptymalizowany pod kątem, ale nie są ograniczone do dostępie z dysku. |
T |
Określa plik jako tymczasowe.Jeśli to możliwe, nie jest opróżniany z dysku. |
D |
Określa plik jako tymczasowe.Skreśla się podczas ostatniego pliku wskaźnik jest zamknięty. |
Jeśli t lub b nie znajduje się w mode, tryb translacji określany jest domyślny tryb zmienna**_fmode**. Jeśli t lub b jest prefiksem do argument, Niepowodzenie funkcja i zwraca NULL.Omówienie trybów tekstowych i dane binarne , zobacz tekstu i binarny tryb We/Wy pliku.
argument shflag jest wyrażenie stałe, składający się z jednego z następujących stałych manifest , określonych w Share.h.
Termin |
Definicja |
---|---|
_SH_COMPAT |
Ustawia tryb zgodności dla aplikacji 16-bitowych. |
_SH_DENYNO |
Zezwolenia na uprawnienia odczytu i zapisu. |
_SH_DENYRD |
Odmawia dostęp do odczytu do pliku. |
_SH_DENYRW |
Uprawnienie Odczyt i zapis do pliku. |
_SH_DENYWR |
Uprawnienie do zapisu w pliku. |
Tekst rodzajowy rutynowych mapowania
Procedura TCHAR.h |
_UNICODE i _MBCS nie zdefiniowane |
_MBCS, definicja |
_UNICODE, definicja |
---|---|---|---|
_tfsopen |
_fsopen |
_fsopen |
_wfsopen |
Wymagania
Funkcja |
Wymaganego nagłówek |
Opcjonalna nagłówki |
---|---|---|
_fsopen |
<stdio.h> |
<share.h> manifest stałej dla shflag parametr. |
_wfsopen |
<stdio.h> lub <wchar.h> |
<share.h> manifest stałej dla shflag parametr. |
Przykład
// 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" );
}
Odpowiednik w programie .NET Framework
System::IO::FileStream::FileStream