#include <unistd.h>
int chown( const char * path, uid_t uid, gid_t gid );
Cette fonction permet de changer l'appartenance (propriétaire et groupe) d'un fichier.
fchown et lchown.
La différence réside dans la manière de spécifier le fichier pour qui changer l'appartenance.
Si tout se passe bien, la fonction renvoie la valeur 0.
Dans le cas contraire, la valeur -1 vous sera retournée et la variable errno sera fixée avec le code erreur
constaté.
path spécifié en paramètre pointe en dehors de l'espace d'adressage autorisé.PATH_MAX caractères, ou l'un de ses éléments constitutifs dépasse NAME_MAX.
L'exemple de code suivant permet de créer un dossier test dans le répertoire courant et de s'y placer avant de créer un nouveau fichier.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
#include <stdio.h> #include <stdlib.h> #include <unistd.h> // chdir #include <sys/stat.h> // mkdir #define PATH "test" int main() { if ( mkdir( PATH, 0755 ) != 0 ) { fprintf( stderr, "Impossible de créer le dossier %s.\n", PATH ); exit( EXIT_FAILURE ); } if ( chdir( PATH ) != 0 ) { fprintf( stderr, "Impossible de se placer dans le dossier %s.\n", PATH ); exit( EXIT_FAILURE ); } FILE * file = fopen( "essai.txt", "w" ); if ( file == NULL ) { fprintf( stderr, "Impossible d'ouvrir le fichier en écriture.\n" ); exit( EXIT_FAILURE ); } fprintf( file, "Ok" ); fclose(file); return EXIT_SUCCESS; } |
POSIX 88 (IEEE Std 1003.1-1988) et versions ultérieures.
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :