Partager via


_umask_s

Définit le masque d’autorisation de fichier par défaut. Version des améliorations de _umask sécurité décrites dans les fonctionnalités de sécurité du CRT.

Syntaxe

errno_t _umask_s(
   int mode,
   int* pOldMode
);

Paramètres

mode
Paramètre d’autorisation par défaut.

pOldMode
Valeur précédente du paramètre d’autorisation.

Valeur retournée

Retourne un code d’erreur s’il mode ne spécifie pas de mode valide ou si le pOldMode pointeur est NULL.

Conditions d’erreur

mode pOldMode Valeur retournée Contenu de pOldMode
n'importe laquelle NULL EINVAL non modifié
mode non valide n'importe laquelle EINVAL non modifié

Si l’une des conditions ci-dessus se produit, le gestionnaire de paramètres non valide est appelé, comme décrit dans la validation des paramètres. Si l'exécution est autorisée à continuer, _umask_s retourne EINVAL et définit errno à EINVAL.

Notes

La _umask_s fonction définit le masque d’autorisation de fichier du processus actuel sur le mode spécifié par mode. Le masque d’autorisation de fichier modifie le paramètre d’autorisation des nouveaux fichiers créés par _creat, _open ou _sopen. Si un bit a la valeur 1 dans le masque, le bit correspondant dans la valeur d’autorisation demandée du fichier prend la valeur 0 (non autorisé). Si un bit a la valeur 0 dans le masque, le bit correspondant est inchangé. Le paramètre d’autorisation d’un nouveau fichier n’est pas défini tant que le fichier n’est pas fermé pour la première fois.

L’expression mode entière contient une ou les deux constantes de manifeste suivantes, définies dans SYS\STAT.H:

mode Description
_S_IWRITE Écriture autorisée.
_S_IREAD Lecture autorisée.
_S_IREAD | _S_IWRITE Lecture et écriture autorisées.

Lorsque les deux constantes sont fournies, elles sont jointes à l’opérateur OR au niveau du bit ( | ). Si l’argument est _S_IREAD, la mode lecture n’est pas autorisée (le fichier est en écriture seule). Si l’argument est _S_IWRITE, l’écriture mode n’est pas autorisée (le fichier est en lecture seule). Par exemple, si le bit d’écriture est défini dans le masque, les nouveaux fichiers sont en lecture seule. Dans MS-DOS et les systèmes d’exploitation Windows, tous les fichiers sont lisibles ; il n’est pas possible d’accorder une autorisation en écriture seule. Par conséquent, le fait définir le bit de lecture avec _umask_s n’a aucun effet sur les modes du fichier.

S’il mode ne s’agit pas d’une combinaison d’une des constantes manifestes ou incorpore un autre ensemble de constantes, la fonction les ignore.

Par défaut, l’état global de cette fonction est limité à l’application. Pour le modifier, consultez l’état global dans le CRT.

Spécifications

Fonction En-tête requis
_umask_s <io.h> et <sys/stat.h> et <sys/types.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

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 );
}
Oldmask = 0x0000

Voir aussi

Gestion des fichiers
E/S de bas niveau
_chmod, _wchmod
_creat, _wcreat
_mkdir, _wmkdir
_open, _wopen
_umask