_chmod, _wchmod
Modifie les paramètres d'autorisation du fichier.
int _chmod(
const char *filename,
int pmode
);
int _wchmod(
const wchar_t *filename,
int pmode
);
Paramètres
filename
Nom du fichier existantpmode
Paramètre d'autorisation pour le fichier.
Valeur de retour
Ces fonctions retournent 0 si le paramètre d'autorisation a été modifié avec succès. Une valeur de retour de – 1 indique un échec. Si le fichier spécifié est introuvable, errno a la valeur ENOENT; si un paramètre est non valide, errno a la valeur EINVAL.
Notes
La fonction _chmod change le paramètre d'autorisation du fichier spécifié par filename*.* Le paramètre d'autorisation contrôle l'accès en lecture et en écriture au fichier. 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'autorisation d'écriture n'est pas donnée, le fichier est en lecture seule. Notez que tous les fichiers sont toujours lisibles ; il est impossible de donner l'autorisation en écriture seule. Par conséquent, les modes _S_IWRITE et _S_IREAD | _S_IWRITE sont équivalents.
_wchmod est une version à caractères larges de _chmod; l'argument filename vers _wchmod est une chaîne à caractères larges. _wchmod et _chmod se comportent sinon de manière identique.
Cette fonction valide ses paramètres. 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. Si filename est NULL, le gestionnaire de paramètres non valides est appelé, comme décrit dans Validation de paramètre. Si l'exécution est autorisée à se poursuivre, errno est défini comme EINVAL et la fonction retourne -1.
Mappages de routines de texte générique
Routine Tchar.h |
_UNICODE et _MBCS non définis |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_tchmod |
_chmod |
_chmod |
_wchmod |
Configuration requise
Routine |
En-tête requis |
En-tête facultatif |
---|---|---|
_chmod |
<io.h,> |
<sys/types.h>, <sys/stat.h>, <errno.h> |
_wchmod |
<io.h> ou <wchar.h> |
<sys/types.h>, <sys/stat.h>, <errno.h> |
Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.
Exemple
// crt_chmod.c
// This program uses _chmod to
// change the mode of a file to read-only.
// It then attempts to modify the file.
//
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
// Change the mode and report error or success
void set_mode_and_report(char * filename, int mask)
{
// Check for failure
if( _chmod( filename, mask ) == -1 )
{
// Determine cause of failure and report.
switch (errno)
{
case EINVAL:
fprintf( stderr, "Invalid parameter to chmod.\n");
break;
case ENOENT:
fprintf( stderr, "File %s not found\n", filename );
break;
default:
// Should never be reached
fprintf( stderr, "Unexpected error in chmod.\n" );
}
}
else
{
if (mask == _S_IREAD)
printf( "Mode set to read-only\n" );
else if (mask & _S_IWRITE)
printf( "Mode set to read/write\n" );
}
fflush(stderr);
}
int main( void )
{
// Create or append to a file.
system( "echo /* End of file */ >> crt_chmod.c_input" );
// Set file mode to read-only:
set_mode_and_report("crt_chmod.c_input ", _S_IREAD );
system( "echo /* End of file */ >> crt_chmod.c_input " );
// Change back to read/write:
set_mode_and_report("crt_chmod.c_input ", _S_IWRITE );
system( "echo /* End of file */ >> crt_chmod.c_input " );
}
Une ligne de texte.
FakePre-0ac8346454f84c37acccd39569d4dcb1-97cd6c18910544ea92783a7671bb68e5
Équivalent .NET Framework
Voir aussi
Référence
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32