Partager via


_umask_s

Définit le masque d'accès 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é dans le 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 aucun mode valide ou le pointeur pOldMode est NULL.

Conditions d'erreur

mode

pOldMode

Valeur de retour

Contenu de oldMode

any

NULL

EINVAL

non modifié

Mode non valide :

any

EINVAL

non modifié

Si l'une de ces conditions d'erreur ci-dessus se produit, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation de paramètre. Si l'exécution est autorisée à se poursuivre, _umask_s renvoie EINVAL et attribue à errno la valeur EINVAL.

Notes

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

L'expression entière pmode contient une des deux ou les deux constantes manifestes suivantes, défini dans SYS\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 fournies, elles sont jointes à l'opérateur de bits OR ( | ). Si l'argument mode est _S_IREAD, la lecture n'est pas autorisée (le fichier est en écriture seule. Si l'argument mode est _S_IWRITE, l'écriture n'est pas autorisée (le fichier est en lecture seule). Par exemple, si le bit d'écriture est défini dans le masque, tous les nouveaux fichiers sont en lecture seule. Notez que avec MS-DOS et des systèmes d'exploitation Windows, tous les fichiers sont lisibles ; il est impossible de donner l'autorisation en écriture seule. Par conséquent, définir le bit de lecture avec _umask_s n'a aucun effet sur les modes du fichier.

Si pmode n'est pas une combinaison de l'une des constantes manifestes ou n'incorpore pas un jeu de remplacement de constantes, la fonction ignore simplement celles-ci.

Configuration requise

Routine

En-tête requis

_umask_s

<io.h> et <sys/stat.h> et <sys/types.h>

Pour plus d'informations sur la compatibilité, 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::IO::File::SetAttributes

Voir aussi

Référence

Gestion de fichiers

E/S niveau bas

_chmod, _wchmod

_creat, _wcreat

_mkdir, _wmkdir

_open, _wopen

_umask