_sopen, _wsopen

ouvre un fichier pour partager.plus les versions sécurisées de ces fonctions sont disponibles ; consultez _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 ] 
);

Paramètres

  • filename
    Nom du fichier.

  • oflag
    Type d'opérations autorisées.

  • shflag
    Type de partage autorisé.

  • pmode
    paramètre d'autorisation.

Valeur de retour

Chacune de ces fonctions retourne un descripteur de fichier du fichier ouvert.

si filename ou oflag est un pointeur d' NULL , ou si oflag ou shflag n'est pas dans une plage de valeurs valide, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation des paramètres.Si est autorisé à l'exécution de se poursuivre, ces fonctions retournent -1 et errno pour valeur l'une des valeurs suivantes.

  • EACCES
    le chemin d'accès donné est un répertoire, ou le fichier est en lecture seule, mais une opération d'ouvert-pour-écriture a été tentée.

  • EEXIST
    _O_CREAT et des balises d' _O_EXCL ont été spécifiés, mais filename existe déjà.

  • EINVAL
    oflag valide ou argument d' shflag .

  • EMFILE
    Pas plus de descripteurs de fichiers disponibles.

  • ENOENT
    Fichier ou un chemin d'accès introuvable.

Pour plus d'informations sur ces éléments et d'autres codes de retour, consultez _doserrno, errno, _sys_errlist, et _sys_nerr.

Notes

la fonction d' _sopen ouvre le fichier spécifié par filename et prépare le fichier pour la lecture ou l'écriture partagée, comme défini par oflag et shflag._wsopen est une version à caractère élargi d' _sopen; l'argument d' filename à _wsopen est une chaîne à caractères larges._wsopen et _sopen se comportent de sinon.

mappages de routines de texte générique

routine de Tchar.h

_UNICODE et _MBCS non définis

_MBCS défini

_UNICODE défini

_tsopen

_sopen

_sopen

_wsopen

L'expression entière oflag est formée en combinant un ou plusieurs des constantes manifestes suivantes, défini dans le fichier Fcntl.h.Lorsque deux constantes ou plus constituent l'argument oflag, elles sont combinées avec l'opérateur de bits OR ( | ).

  • _O_APPEND
    Repositionne le pointeur de fichier à la fin de le fichier avant chaque opération d'écriture.

  • _O_BINARY
    Ouvre un fichier en mode (non traduit) binaire.(Consultez fopen pour une description du mode binaire.)

  • _O_CREAT
    Crée et ouvre le nouveau fichier pour l'écriture.N'a pas d'effet si le fichier spécifié par filename existe.L'argument d' pmode est requis lorsque _O_CREAT est spécifié.

  • _O_CREAT| _O_SHORT_LIVED
    Créez un fichier comme temporaire et si possible ne le vide pas sur le disque.L'argument d' pmode est requis lorsque _O_CREAT est spécifié.

  • _O_CREAT| _O_TEMPORARY
    Créez un fichier comme temporaire ; le fichier est supprimé lorsque le dernier descripteur de fichier est fermé.L'argument d' pmode est requis lorsque _O_CREAT est spécifié.

  • _O_CREAT| _O_EXCL
    Retourne une valeur d'erreur si un fichier spécifié par filename existe.S'applique uniquement en cas de utilisation avec _O_CREAT.

  • _O_NOINHERIT
    Empêché la création d'un descripteur de fichier partagé.

  • _O_RANDOM
    Spécifie principalement l'accès aléatoire à partir de le disque.

  • _O_RDONLY
    Ouvre un fichier pour lire uniquement ; ne peut pas être spécifié avec _O_RDWR ou _O_WRONLY.

  • _O_RDWR
    ouvre le fichier pour la lecture et l'écriture ; ne peut pas être spécifié avec _O_RDONLY ou _O_WRONLY.

  • _O_SEQUENTIAL
    Spécifie principalement un accès séquentiel à partir de le disque.

  • _O_TEXT
    Ouvre un fichier en mode de texte (traduits).(Pour plus d'informations, consultez E/S de fichier du mode de texte et de binaire et le fopen.)

  • _O_TRUNC
    Ouvrir un fichier et le tronque à la longueur nulle ; le fichier doit avoir l'autorisation en écriture.vous ne pouvez pas spécifier cette balise avec _O_RDONLY._O_TRUNC elle est utilisée avec _O_CREAT ouvre un fichier existant ou crée un fichier.

    [!REMARQUE]

    la balise d' _O_TRUNC détruit le contenu du fichier spécifié.

  • _O_WRONLY
    Ouvre un fichier pour entrer uniquement ; ne peut pas être spécifié avec _O_RDONLY ou _O_RDWR.

  • _O_U16TEXT
    Ouvrez le mode UTF-16 de fichier au format Unicode.

  • _O_U8TEXT
    Ouvrez le mode UTF-8 de fichier au format Unicode.

  • _O_WTEXT
    Ouvrez le mode de fichier au format Unicode.

pour spécifier le mode d'accès au fichier, vous devez spécifier _O_RDONLY, _O_RDWR, ou _O_WRONLY.Il n'existe aucune valeur par défaut pour le mode d'accès.

Si _sopen est appelé avec _O_WRONLY|_O_APPEND (mode adjacent) et _O_WTEXT, _O_U16TEXT, ou _O_U8TEXT, il essaie d'abord d'ouvrir le fichier pour la lecture et en écriture, lisez le BOM, puis rouvrez -le pour entrer uniquement.Si l'ouverture du fichier pour les échecs de lecture et d'écriture, il ouvre le fichier pour entrer uniquement et utilise la valeur par défaut pour définir en mode Unicode.

L'argument shflag est une expression constante se composer de constantes manifestes suivantes, défini dans Share.h.

  • _SH_DENYRW
    Refuse l'accès en lecture et en écriture dans un fichier.

  • _SH_DENYWR
    refuse l'accès en écriture à un fichier.

  • _SH_DENYRD
    Accès en lecture refuser à un fichier.

  • _SH_DENYNO
    Autorise l'accès en lecture et en écriture.

L'argument d' pmode est obligatoire uniquement lorsqu'il spécifie _O_CREAT.Si le fichier n'existe pas, pmode spécifie les paramètres d'autorisation de fichier, qui sont définis lorsque le fichier est fermé la première fois.Sinon pmode est ignoré.pmode est une expression entière contenant une ou les deux constantes manifestes _S_IWRITE et _S_IREAD, définie dans le système \Stat .h.Lorsque les deux constantes sont données, ils sont combinées avec l'opérateur de bits OR.La signification d' pmode est la suivante.

  • _S_IWRITE
    écriture autorisée.

  • _S_IREAD
    lecture autorisée.

  • _S_IREAD | _S_IWRITE
    lecture et écriture autorisées.

Si l'autorisation d'écriture n'est pas accordée, le fichier est en lecture seule.Sous le système d'exploitation Windows, tous les fichiers sont compréhensibles ; il n'est pas possible d'accorder l'autorisation en écriture seule.Par conséquent, les modes _S_IWRITE et _S_IREAD | _S_IWRITE sont équivalents.

_sopen applique le masque d'autorisation de fichier en cours à pmode avant de définir les autorisations (consultez _umask).

Configuration requise

routine

en-tête requis

en-tête facultatif

_sopen

<io.h>

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

_wsopen

<io.h> ou <wchar.h>

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

Pour plus d'informations de compatibilité, consultez compatibilité dans l'introduction.

Exemple

Consultez l'exemple pour _locking.

Équivalent .NET Framework

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez l' exemples d'appel de code non managé.

Voir aussi

Référence

E/S de bas niveau

_close

_create, _wcreat

le fopen, _wfopen

_fsopen, _wfsopen

_open, _wopen