_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é.