_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

Voir aussi

Référence

Gestion de fichiers

E/S de bas niveau

_chmod, _wchmod

_create, _wcreat

_mkdir, _wmkdir

_open, _wopen

_umask