_umask_s
définit le masque d'autorisation de fichier par défaut.Une version de _umask avec des améliorations de sécurité comme décrit dans Fonctionnalités de sécurité du CRT.
errno_t _umask_s(
int mode,
int * pOldMode
);
Paramètres
[in] mode
paramètre d'autorisation par défaut.[out] oldMode
la valeur précédente du paramètre d'autorisation.
Valeur de retour
Retourne un code d'erreur si Mode ne spécifie pas de mode valide ou le pointeur d' pOldMode est NULL.
conditions d'erreur
mode |
pOldMode |
Valeur de retour |
contenu de oldMode |
---|---|---|---|
quels |
NULL |
EINVAL |
non modifié |
mode valide |
quels |
EINVAL |
non modifié |
Si l'une des conditions ci-dessus se produit, 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, _umask_s retourne EINVAL et définit errno à EINVAL.
Notes
La fonction d' _umask_sdéfinit le masque d'autorisation de fichier du processus actuel en mode spécifié par mode*.* Le masque d'autorisation de fichier remplace le paramètre d'autorisation de fichiers créés par _creat, _open, ou _sopen.Si un bit dans le masque est 1, le bit correspondant en valeur demandée de l'autorisation de fichier est défini à 0 (interdit).Si un bit dans le masque est 0, le bit correspondant reste inchangé.Le paramètre d'autorisation pour un nouveau fichier n'est pas défini jusqu'à ce que le fichier est fermé pour la première fois.
L'expression entière pmode contient une ou les deux constantes manifestes suivantes, défini dans le système \STAT.H :
_S_IWRITE
écriture autorisée._S_IREAD
lecture autorisée._S_IREAD | _S_IWRITE
lecture et écriture autorisées.
Lorsque les deux constantes sont données, elles sont attachées avec l'opérateur de bits OR ( | ).Si l'argument d' mode est _S_IREAD, vous ne pouvez pas lire (le fichier est en écriture seule).Si l'argument d' mode est _S_IWRITE, vous ne pouvez pas écrire (le fichier est en lecture seule).Par exemple, si le bit en écriture est défini dans le masque, tous les nouveaux fichiers sont en lecture seule.Notez qu'avec MS-DOS et les systèmes d'exploitation Windows, tous les fichiers sont compréhensibles ; il n'est pas possible d'accorder l'autorisation en écriture seule.Par conséquent, le bit de lecture à _umask_sn'a aucun effet sur les modes du fichier.
Si pmode n'est pas une combinaison d'une des constantes manifestes ou n'incorpore pas un ensemble de mosaïques constantes, la fonction ignore simplement ceux.
Configuration requise
routine |
en-tête requis |
---|---|
_umask_s |
<io.h> et <sys/stat.h> <sys/types.h> |
Pour des informations de compatibilité supplémentaires, consultez compatibilité dans l'introduction.
Exemple
// crt_umask_s.c
/* This program uses _umask_s to set
* the file-permission mask so that all future
* files will be created as read-only files.
* It also displays the old mask.
*/
#include <sys/stat.h>
#include <sys/types.h>
#include <io.h>
#include <stdio.h>
int main( void )
{
int oldmask, err;
/* Create read-only files: */
err = _umask_s( _S_IWRITE, &oldmask );
if (err)
{
printf("Error setting the umask.\n");
exit(1);
}
printf( "Oldmask = 0x%.4x\n", oldmask );
}
Équivalent .NET Framework
System : : E/S : : fichier : : SetAttributes