_fsopen, _wfsopen

Apre un flusso alla condivisione di file.

FILE *_fsopen( 
   const char *filename,
   const char *mode,
   int shflag 
);
FILE *_wfsopen( 
   const wchar_t *filename,
   const wchar_t *mode,
   int shflag 
);

Parametri

  • filename
    Nome del file da aprire.

  • mode
    Tipo di valido di accesso.

  • shflag
    Tipo di condividere consentito.

Valore restituito

Ognuna di queste funzioni restituisce un puntatore al flusso.un valore di puntatore null indica un errore.Se filename o mode è NULL o una stringa vuota, queste funzioni richiamare il gestore non valido di parametro, come descritto in Convalida dei parametri.Se l'esecuzione è consentita per continuare, queste funzioni NULL di ritorno e errno stabilito a EINVAL.

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

Note

La funzione di _fsopen apre il file specificato da filename come flusso e prepara il file per lettura condivisa successiva o scrittura, come definito dalla modalità e dagli argomenti di shflag ._wfsopen è una versione a caratteri estesi di _fsopen; gli argomenti di mode e di filename a _wfsopen sono stringhe di caratteri estesi._wfsopen e _fsopen si comportano in modo identico in caso contrario.

La stringa di caratteri mode specifica il tipo di accesso richiesta di file, come illustrato nella tabella seguente.

Termine

Definizione

"r"

Verrà aperto per leggere.Se il file non esiste o non è possibile trovare, la chiamata di _fsopen ha esito negativo.

"w"

Apre un file vuoto per la scrittura.Se il file specificato esiste, il contenuto viene eliminato.

"a"

Verrà aperto per la scrittura alla fine del file (accodare); crea il file innanzitutto se non esiste.

"r+"

Viene aperto per la lettura e scrittura.(Il file deve esistere.)

"w+"

Apre un file vuoto per la lettura e scrittura.Se il file specificato esiste, il contenuto viene eliminato.

"a+"

Verrà aperto per la lettura e aggiungere; crea il file innanzitutto se non esiste.

Utilizzare con attenzione i tipi di "w+" e di "w" , ad esempio possono eliminare i file esistenti.

Quando un file viene aperto con il tipo di accesso di "a+" o di "a" , tutte le operazioni di scrittura si verificano alla fine del file.Il puntatore del file può essere riposizionato utilizzando fseek o di rewind, ma viene spostato sempre alla fine del file prima che qualsiasi operazione di scrittura sia eseguita.Pertanto, i dati esistenti non possono essere sovrascritti.Quando "r+", "w+", o il tipo di accesso di "a+" viene specificato, sia la lettura e la scrittura sono consentite (il file viene aperto per l'aggiornamento).Quando tuttavia si passano tra la lettura e la scrittura, deve essere fsetposcorrispondente, fseek, o operazione di rewind .La posizione corrente può essere specificata per l'operazione di fseek o di fsetpos , se desiderata.Oltre ai valori in precedenza, uno dei seguenti caratteri può essere incluso in mode per specificare la modalità di traduzione per le nuove righe e per la gestione dei file.

Termine

Definizione

t

Aprire un file in modalità di testo (tradotto).In questa modalità, i miscugli di un feed di ritorno-linea shopping (CR-LF) vengono convertiti in una singola riga è alimenta (LF) l'input e i caratteri di LF vengono convertiti alle combinazioni di CR-LF in output.Inoltre, CTRL+Z viene interpretato come carattere di fine file di input.In aprire file per la lettura o la lettura/scrittura, i controlli di _fsopen per un CTRL+Z alla fine del file e la rimozione, se possibile.Questa operazione viene eseguita perché utilizzando fseek e ftell per spostarsi all' interno di un file che termina con un CTRL+Z può accadere che fseek a comportarsi in modo errato alla fine del file.

b

Aprire un file in modalità (non tradotta) binaria; le conversioni in precedenza vengono eliminati.

S

Specifica che memorizza nella cache è ottimizzato per, ma non limitato a, un accesso sequenziale dal disco.

R

Specifica che memorizza nella cache è ottimizzato per, ma non limitato a, accesso casuale dal disco.

T

specifica un file come temporaneo.Se possibile, non viene scaricata su disco.

D

specifica un file come temporaneo.Viene eliminato quando l'ultimo puntatore del file viene chiuso.

Se t o b non è modefornito in, la modalità di conversione definita dalla variabile _fmodedi impostazione predefinita-modalità.Se t o b è preceduta l ' argomento, la funzione ha esito negativo e restituisce NULL.Per informazioni sulle modalità del binario e del testo, vedere La modalità del binario di testo e archivia I/O.

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

Termine

Definizione

_SH_COMPAT

Imposta la modalità di compatibilità per le applicazioni a 16 bit.

_SH_DENYNO

Autorizzazioni di lettura e accesso in scrittura.

_SH_DENYRD

Nega l'accesso in lettura al file.

_SH_DENYRW

Nega accesso in lettura e scrittura al file.

_SH_DENYWR

Nega l'accesso in scrittura al file.

Mapping di routine a testo generico

routine di Tchar.h

_UNICODE e _MBCS non definiti

_MBCS definito

_UNICODE definito

_tfsopen

_fsopen

_fsopen

_wfsopen

Requisiti

Funzione

Intestazione di associazione

intestazioni facoltative

_fsopen

<stdio.h>

<share.h>

Per la costante del manifesto per il parametro di shflag .

_wfsopen

<stdio.h> o <wchar.h>

<share.h>

Per la costante del manifesto per il parametro di shflag .

Esempio

// 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" );
}
  

Equivalente .NET Framework

Vedere anche

Riferimenti

Flusso I/O

fclose, _fcloseall

_fdopen, _wfdopen

ferror

_fileno

fopen, _wfopen

freopen, _wfreopen

_open, _wopen

_setmode

_sopen, _wsopen