_fsopen, _wfsopen
ouvre un flux de données avec le partage de fichiers.
FILE *_fsopen(
const char *filename,
const char *mode,
int shflag
);
FILE *_wfsopen(
const wchar_t *filename,
const wchar_t *mode,
int shflag
);
Paramètres
filename
Nom du fichier à ouvrir.mode
type d'accès autorisé.shflag
Type de partage autorisé.
Valeur de retour
Chacune de ces fonctions retourne un pointeur vers le flux de données.une valeur de pointeur null indique une erreur.Si filename ou mode est NULL ou une chaîne vide, ces fonctions appellent le gestionnaire de paramètre non valide, comme décrit dans Validation des paramètres.Si est autorisé à l'exécution de se poursuivre, ces fonctions NULL de retour et errno défini à EINVAL.
Pour plus d'informations sur ces éléments et d'autres codes d'erreur, consultez _doserrno, errno, _sys_errlist, et _sys_nerr.
Notes
La fonction d' _fsopen ouvre le fichier spécifié par filename flux et prépare le fichier pour la lecture partagée suivante ou l'écriture, comme défini par le mode et les arguments d' shflag ._wfsopen est une version à caractère élargi d' _fsopen; les arguments d' filename et d' mode à _wfsopen sont des chaînes à caractères larges._wfsopen et _fsopen se comportent de sinon.
La chaîne de caractères mode spécifie le type d'accès demandé pour le fichier, comme indiqué dans le tableau suivant.
Terme |
Définition |
---|---|
"r" |
S'ouvre pour la lecture.Si le fichier n'existe pas ou introuvable, l'appel d' _fsopen échoue. |
"w" |
Ouvre un fichier vide pour l'écriture.Si le fichier spécifié existe, son contenu est détruit. |
"a" |
S'ouvre pour écrire à la fin de le fichier (ajouter) ; crée un fichier d'abord s'il n'existe pas. |
"r+" |
s'ouvre pour la lecture et l'écriture.(Le fichier doit exister.) |
"w+" |
ouvre un fichier vide pour la lecture et l'écriture.Si le fichier spécifié existe, son contenu est détruit. |
"a+" |
S'ouvre pour lire et ajouter ; crée un fichier d'abord s'il n'existe pas. |
Utilisez les types d' "w" et d' "w+" avec prudence, car ils peuvent détruire des fichiers existants.
Lorsqu'un fichier est ouvert avec le type d'accès d' "a" ou d' "a+" , toutes les opérations d'écriture se produisent à la fin de le fichier.Le pointeur de fichier peut être repositionné à l'aide de fseek ou rewind, mais il est toujours déplacé vers la fin du fichier avant que toute opération d'écriture soit exécutée.Par conséquent, les données existantes ne peuvent pas être remplacées.Lorsque "r+", "w+", ou le type d'accès d' "a+" est spécifié, il autorise la lecture et l'écriture (le fichier est appelé ouvert pour la mise à jour).Toutefois, le basculement entre la lecture et l'écriture, il doit y avoir fsetposintermédiaire, fseek, ou opération de rebobinage .La position actuelle peut être spécifiée pour une opération d' fsetpos ou d' fseek , si vous le souhaitez.Outre les valeurs ci-dessus, l'un des caractères suivants peuvent être inclus dans mode pour spécifier un en mode de traduction pour les nouvelles lignes, et pour la gestion de fichiers.
Terme |
Définition |
---|---|
t |
Ouvre un fichier en mode de texte (traduits).Dans ce mode, les combinaisons de retour-ligne de chariot (CR-LF) sont traduits en sauts de ligne unique (LF) sur l'entrée et les caractères de saut de ligne sont traduits aux combinaisons de CR-LF sur la sortie.En outre, CTRL+Z est interprète comme caractère de fin de fichier de l'entrée.Dans les fichiers ouverts pour lire ou la lecture/écriture, _fsopen vérifie la présence d'un CTRL+Z à la fin de le fichier et le supprimer, si possible.Cette opération est exécutée comme l'utilisation d' fseek et d' ftell pour déplacer dans un fichier qui se termine par un CTRL+Z peut entraîner un comportement fseek incorrectement à la fin de le fichier. |
b |
Ouvre un fichier en mode (non traduit) binaire ; les traductions ci-dessus sont supprimées. |
S |
Spécifie que la mise en cache est optimisé pour, mais pas un niveau, l'accès séquentiel à partir de le disque. |
R |
Spécifie que la mise en cache est optimisé pour, mais pas un niveau, l'accès aléatoire à partir de le disque. |
T |
Spécifie un fichier comme temporaire.Si possible, il n'est pas vidé sur le disque. |
D |
Spécifie un fichier comme temporaire.Il est supprimé lorsque le dernier pointeur de fichier est fermé. |
si t ou b n'est pas donné dans mode, l'à mode de traduction est défini par la variable _fmodede valeur par défaut-mode.Si t ou b est préfixé à l'argument, la fonction échoue et retourne NULL.Pour plus d'informations sur les modes de texte et de binaire, consultez l' E/S de fichier du mode de texte et de binaire.
L'argument shflag est une expression constante se composer de constantes manifestes suivantes, défini dans Share.h.
Terme |
Définition |
---|---|
_SH_COMPAT |
Définit le mode de compatibilité pour les applications 16 bits. |
_SH_DENYNO |
Autorise l'accès en lecture et en écriture. |
_SH_DENYRD |
Accès en lecture refuser au fichier. |
_SH_DENYRW |
refuse l'accès en lecture et en écriture au fichier. |
_SH_DENYWR |
refuse l'accès en écriture au fichier. |
mappages de routines de texte générique
routine de Tchar.h |
_UNICODE et _MBCS non définis |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_tfsopen |
_fsopen |
_fsopen |
_wfsopen |
Configuration requise
Fonction |
en-tête requis |
en-têtes facultatifs |
---|---|---|
_fsopen |
<stdio.h> |
<share.h> Pour la constante de manifeste pour le paramètre d' shflag . |
_wfsopen |
<stdio.h> ou <wchar.h> |
<share.h> Pour la constante de manifeste pour le paramètre d' shflag . |
Exemple
// 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" );
}
Équivalent .NET Framework
System::IO : : FileStream : : FileStream