Condividi tramite


_sopen, _wsopen

Apertura di un file per condividere.Più versioni sicure di queste funzioni sono disponibili, vedere _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 ] 
);

Parametri

  • filename
    Nome file.

  • oflag
    Tipo di operazioni consentite.

  • shflag
    Tipo di condividere consentito.

  • pmode
    Impostazione di autorizzazione.

Valore restituito

Ognuna di queste funzioni restituisce un descrittore del file per il file aperto.

se filename o oflag è un oggetto NULL puntatore, o se oflag o shflag non è compreso in un intervallo valido di valori, il gestore non valido di parametro viene richiamato, come descritto in Convalida dei parametri.Se l'esecuzione è consentita per continuare, queste funzioni restituiscono -1 e impostate errno su uno dei seguenti valori.

  • EACCES
    Il percorso specificato è una directory, oppure il file è di sola lettura, ma un'operazione di aperto-per-scrittura è stata tentata.

  • EEXIST
    _O_CREAT e _O_EXCL i contrassegni sono stati specificati, ma filename esiste già.

  • EINVAL
    non valido oflag o shflag argomento.

  • EMFILE
    Non più descrittori di file disponibili.

  • ENOENT
    File o il percorso non trovato.

Per ulteriori informazioni su questi e altri codici restituiti, vedere _doserrno, errno, _sys_errlist e _sys_nerr.

Note

_sopen la funzione consente di aprire il file specificato da filename e prepara il file per lettura o scrittura condivisa, come definito da oflag e shflag._wsopen è una versione a caratteri estesi di _sopen; filename argomento a _wsopen è una stringa di caratteri estesi._wsopen e _sopen comportano in modo identico in caso contrario.

Mapping di routine a testo generico

routine di Tchar.h

_UNICODE e _MBCS non definiti

_MBCS definito

_UNICODE definito

_tsopen

_sopen

_sopen

_wsopen

l'espressione Integer oflag è formato collegando dalla combinazione di uno o più delle costanti manifesto seguenti, definito nel file Fcntl.h.Quando due o più costanti costituiscono l'argomento oflag, vengono combinati con l'operatore OR bit per bit ( | ).

  • _O_APPEND
    Riposizionare un puntatore alla fine del file del file prima di ogni operazione di scrittura.

  • _O_BINARY
    Aprire un file in modalità (non tradotta) binaria.(Vedere fopen per una descrizione della modalità binaria.)

  • _O_CREAT
    Viene creato e aperto il nuovo file per la scrittura.Non ha effetto se il file specificato da filename esiste.pmode l'argomento è obbligatorio quando _O_CREAT è specificato.

  • _O_CREAT| _O_SHORT_LIVED
    Creare un file come temporaneo e se possibile non arrossir su disco.pmode l'argomento è obbligatorio quando _O_CREAT è specificato.

  • _O_CREAT| _O_TEMPORARY
    Creare un file come temporaneo, il file è stato eliminato quando l'ultimo descrittore del file viene chiuso.pmode l'argomento è obbligatorio quando _O_CREAT è specificato.

  • _O_CREAT| _O_EXCL
    Restituisce un errore se un file specificato da filename esiste.Si applica solo quando è utilizzato con _O_CREAT.

  • _O_NOINHERIT
    Impedisce la creazione di un descrittore di file condiviso.

  • _O_RANDOM
    Specifica principalmente l'accesso casuale dal disco.

  • _O_RDONLY
    Apertura di un file per la lettura solo; non è possibile specificare con _O_RDWR o _O_WRONLY.

  • _O_RDWR
    Aprire il file sia per lettura e scrittura; non è possibile specificare con _O_RDONLY o _O_WRONLY.

  • _O_SEQUENTIAL
    Specifica principalmente un accesso sequenziale dal disco.

  • _O_TEXT
    Aprire un file in modalità di testo (tradotto).(Per ulteriori informazioni, vedere La modalità del binario di testo e archivia I/O e fopen).

  • _O_TRUNC
    Apre un file e la conseguente a di lunghezza zero, il file deve disporre delle autorizzazioni di scrittura.Non è possibile specificare questo flag con _O_RDONLY._O_TRUNC utilizzato con _O_CREAT apre un file esistente oppure creare un nuovo file.

    [!NOTA]

    _O_TRUNC il flag elimina il contenuto del file specificato.

  • _O_WRONLY
    Apertura di un file per la scrittura solo; non è possibile specificare con _O_RDONLY o _O_RDWR.

  • _O_U16TEXT
    Aprire il file in modalità Unicode UTF-16.

  • _O_U8TEXT
    Aprire il file in modalità Unicode UTF-8.

  • _O_WTEXT
    Aprire il file in modalità Unicode.

Per specificare la modalità di accesso ai file, è necessario specificare uno _O_RDONLY, _O_RDWR, o _O_WRONLY.Non esiste un valore predefinito per la modalità di accesso.

se _sopen viene chiamato con _O_WRONLY|_O_APPEND (aggiunta la modalità) e _O_WTEXT, _O_U16TEXT, o _O_U8TEXT, innanzitutto tenterà di aprire il file per la lettura e la scrittura, leggere il BOM, quindi riaprirlo per la scrittura solo.Se aperto il file per l'esito negativo della lettura e la scrittura, verrà visualizzato il file per la scrittura solo e conterrà il valore predefinito per l'impostazione della modalità Unicode.

l'argomento shflag è un'espressione costante la quantità delle costanti manifesto, definito in Share.h.

  • _SH_DENYRW
    Nega accesso in lettura e scrittura in un file.

  • _SH_DENYWR
    Nega l'accesso in scrittura in un file.

  • _SH_DENYRD
    Nega l'accesso in lettura a un file.

  • _SH_DENYNO
    Autorizzazioni di lettura e accesso in scrittura.

pmode l'argomento è obbligatorio solo quando si specifica _O_CREAT.se il file non esiste, pmode specifica le impostazioni delle autorizzazioni del file, che vengono impostate quando il nuovo file viene chiuso la prima volta.In caso contrario pmode viene ignorato.pmode è un'espressione Integer contenente una o entrambe le costanti manifesto _S_IWRITE e _S_IREAD, definito nel sistema \Stat h.Quando entrambe le costanti vengono fornite, vengono combinati con l'operatore OR bit.il significato di pmode è il seguente.

  • _S_IWRITE
    Scrittura valida.

  • _S_IREAD
    Lettura valida.

  • _S_IREAD | _S_IWRITE
    lettura e scrittura consentite.

Se l'autorizzazione di scrittura non viene concessa, il file è di sola lettura.Con il sistema operativo Windows, tutti i file leggibili; non è possibile fornire l'autorizzazione di sola scrittura.Pertanto, le modalità _S_IWRITE e _S_IREAD | _S_IWRITE sono pertanto equivalenti.

_sopen applica la maschera corrente di autorizzazione file a pmode prima di impostare le autorizzazioni (vedere _umask).

Requisiti

routine

Intestazione di associazione

intestazione facoltativa

_sopen

<io.h>

<fcntl.h> , <sistema/types.h> , <sistema/stat.h> , <share.h>

_wsopen

<io.h> o <wchar.h>

<fcntl.h> , <sistema/types.h> , <sistema/stat.h> , <share.h>

Per ulteriori informazioni sulla compatibilità, vedere compatibilità nell'introduzione.

Esempio

Vedere l'esempio relativo a _locking.

Equivalente .NET Framework

Non applicabile. Per chiamare la funzione c standard, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di pinvoke.

Vedere anche

Riferimenti

L'I/O di basso livello

_close

_create, _wcreat

fopen, _wfopen

_fsopen, _wfsopen

_open, _wopen