_sopen_s, _wsopen_s
Otwiera plik do udostępniania.Są to wersje _sopen i _wsopen z rozszerzeń zabezpieczeń opisane w Funkcje zabezpieczeń w 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
[out]pfh
Dojście do pliku lub -1, w przypadku wystąpienia błędu.[w]filename
Nazwa pliku.[w]oflag
Typ operacji dozwolone.[w]shflag
Typ udostępnianie dozwolone.[w]pmode
Ustawienie uprawnienia.
Wartość zwracana
Zwracana wartość różną od zera wskazuje na błąd, w którym to przypadku errno jest ustawiona na jeden z następujących wartości.
EACCES
Ścieżka jest katalogu, lub plik jest tylko do odczytu, ale dokonano próby operacji otwartego na piśmie.EEXIST
_O_CREAT i _O_EXCL określono flagi, ale filename już istnieje.EINVAL
Invalid oflag, shflag, orpmode argument, or pfh or filename was a null pointer.EMFILE
Nie więcej deskryptorów plików dostępne.ENOENT
Plik lub nie odnaleziono ścieżki.
Jeżeli nieprawidłowy argument jest przekazywany do funkcji, nieprawidłowy parametr wywoływana jest funkcja obsługi, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie jest dozwolone, aby kontynuować, errno jest ustawiona na EINVAL i EINVAL jest zwracany.
Aby uzyskać więcej informacji na temat tych i innych kodów powrotu, zobacz _doserrno, errno, _sys_errlist i _sys_nerr.
W przypadku błędu, -1 będzie zwracana poprzez pfh (chyba że pfh jest wskaźnik null).
Uwagi
_sopen_s Funkcja otwiera w pliku określonym przez filename i przygotowuje plik do udostępnionego czytania lub pisania, zgodnie z definicją oflag i shflag._wsopen_sjest to wersja szerokich znaków _sopen_s; filename argument _wsopen_s jest łańcuch szerokich znaków._wsopen_si _sopen_s zachowują się identycznie inaczej.
Tekst rodzajowy rutynowych mapowania
Procedura TCHAR.h |
_UNICODE i _MBCS nie zdefiniowane |
_MBCS, definicja |
_UNICODE, definicja |
---|---|---|---|
_tsopen_s |
_sopen_s |
_sopen_s |
_wsopen_s |
Wyrażenie liczby całkowitej oflag jest utworzona przez łączenie jednego lub więcej stałych manifestu, zdefiniowane w pliku Fcntl.h.Kiedy dwa lub więcej stałych tworzą argument oflag, są one połączone z (operatory OR, operator | ).
_O_APPEND
Zmiana wskaźnika pliku na końcu pliku przed wykonaniem każdej operacji zapisu._O_BINARY
Otwiera plik w trybie binarnym (nieprzetłumaczony).(Zobacz fopen opis tryb binarny.)_O_CREAT
Tworzy i otwiera nowy plik do zapisu.Jest ignorowany, jeżeli plik określony przez filename istnieje._O_CREAT| _O_SHORT_LIVED
Utwórz plik jako tymczasowe i jeśli to możliwe nie opróżnia na dysk._O_CREAT| _O_TEMPORARY
Utwórz plik jako tymczasowe; plik zostanie usunięty podczas ostatniej deskryptor pliku jest zamknięty._O_CREAT| _O_EXCL
Zwraca wartość błędu, jeżeli plik określony przez filename istnieje.Stosuje się tylko wtedy, gdy używana z _O_CREAT._O_NOINHERIT
Uniemożliwia tworzenie deskryptora udostępnionego pliku._O_RANDOM
Określa przede wszystkim na dostępie z dysku._O_RDONLY
Otwiera plik do odczytu tylko; nie można określić z _O_RDWR lub _O_WRONLY._O_RDWR
Otwiera plik do zarówno odczytu i zapisu; nie można określić z _O_RDONLY lub _O_WRONLY._O_SEQUENTIAL
Określa przede wszystkim dostęp sekwencyjny z dysku._O_TEXT
Otwiera plik w trybie tekstowym (tłumaczenie).(Aby uzyskać więcej informacji, zobacz tekstu i binarny tryb We/Wy pliku i fopen.)_O_TRUNC
Otwiera plik i obcina to zero długości; Plik musi mieć uprawnienie do zapisu.Nie można określić tej flagi z _O_RDONLY._O_TRUNC używane z _O_CREAT otwarcie istniejącego pliku lub tworzy nowy plik.[!UWAGA]
_O_TRUNC Flaga niszczy zawartość określonego pliku.
_O_WRONLY
Otwiera plik do zapisu tylko; nie można określić z _O_RDONLY lub _O_RDWR._O_U16TEXT
Otwórz plik w trybie Unicode UTF-16._O_U8TEXT
Otwórz plik w trybie Unicode UTF-8._O_WTEXT
Otwórz plik w trybie Unicode.
Aby określić tryb dostępu do pliku, należy określić albo _O_RDONLY, _O_RDWR, lub _O_WRONLY.Nie istnieje wartość domyślną dla trybu dostępu.
Jeśli _sopen_s jest wywoływana z _O_WRONLY|_O_APPEND (tryb dołączania) i _O_WTEXT, _O_U16TEXT, lub _O_U8TEXT, go najpierw spróbować otworzyć plik do odczytu i zapisu, przeczytaj BOM, a następnie otwórz go ponownie do pisania tylko.Jeśli otwarcie pliku do odczytu i zapisu ulegnie awarii, będzie otworzyć plik do zapisu tylko i użyć wartości domyślne ustawienie trybu Unicode.
Argument shflag jest wyrażenie stałe, składający się z jednej z następujących stałych manifestu, określonych w Share.h.
_SH_DENYRW
Uprawnienie Odczyt i zapis do pliku._SH_DENYWR
Uprawnienie do zapisu w pliku._SH_DENYRD
Uprawnienie do odczytu pliku._SH_DENYNO
Zezwolenia na uprawnienia odczytu i zapisu.
pmode Argumentu jest wymagane, w odróżnieniu od zawsze _sopen.Podczas określania _O_CREAT, jeśli plik nie istnieje, pmode określa ustawienia uprawnień plików, które są ustawiane podczas nowy plik zostanie zamknięty po raz pierwszy.W przeciwnym razie pmode jest ignorowana.pmodeWyrażenie liczby całkowitej, zawierający jedną lub obie z manifestu stałych jest _S_IWRITE i _S_IREAD, określonych w SYS\Stat.h.Podano zarówno stałych, są połączone z operatorem logiczną lub.Znaczenie pmode jest w następujący sposób.
_S_IWRITE
Dozwolone pisania._S_IREAD
Dozwolone czytania._S_IREAD | _S_IWRITE
Czytanie i pisanie dozwolone.
Jeśli uprawnienie do zapisu nie jest podany, plik jest tylko do odczytu.W systemie operacyjnym Windows wszystkie pliki są czytelne; nie jest możliwe nadać uprawnienia tylko do zapisu.W ten sposób, tryby _S_IWRITE i _S_IREAD | _S_IWRITE są równoważne.
_sopen_sstosuje się bieżącą maskę uprawnień do pliku, aby pmode przed ustawieniem uprawnienia (zobacz _umask).
Wymagania
Rozpoczęto wykonywanie procedury |
Wymaganego nagłówka |
Opcjonalne nagłówka |
---|---|---|
_sopen_s |
<io.h> |
<fcntl.h>, <sys/types.h>, <sys/stat.h>, <share.h> |
_wsopen_s |
<io.h> lub <wchar.h> |
<fcntl.h>, <sys/types.h>, <sys/stat.h>, <share.h> |
Informacji dotyczących zgodności, zobacz zgodności we wprowadzeniu.
Przykład
Zobacz przykład dla _locking.