8
votes

Comment changer / montrer les autorisations en C

Je suis nouveau à la programmation C et j'aimerais implémenter la commande chmod sur les fichiers d'un dir et de SubDir. Comment puis-je modifier / montrer des autorisations avec un code C? Quelqu'un pourrait-il aider avec un exemple? J'apprécierais que quelqu'un puisse me fournir un code.


0 commentaires

3 Réponses :


2
votes

Avec la bibliothèque GNU C, vous devriez pouvoir le faire directement avec

int chmod (const char *filename, mode_t mode)
int chown (const char *filename, uid_t owner, gid_t group)


0 commentaires

14
votes

Il y a une fonction chmod. De Man 3P Chmod :

SYNOPSIS
   #include <sys/stat.h>

   int stat(const char *restrict path, struct stat *restrict buf);

...


5 commentaires

Merci pour la réponse rapide, mais puis-je trouver quelque part un code complet à ce sujet?


Je l'ai fait, mais j'ai trouvé juste des morceaux.


@ user304414: Avez-vous essayé les versions des pages de l'homme que j'ai liées? Ils ont de vrais exemples en dessous d'eux.


Oui, je l'ai fait, mais ce ne sont que des exemples, pas un programme complet. Je peux apprendre juste à partir d'un code de programme fonctionnant.


@ user304414: Ce sont des exemples complètes des appels à ces fonctions. Si vous voulez un programme complet, enveloppez-le dans une principale, déclarez les variables nécessaires ...



0
votes

Un exemple: (Autorisations Afficher / Test)

struct stat st; 
int ret = stat(filename, &st);
if(ret != 0) {
    return false;
}   
if((st.st_mode & S_IWOTH) == S_IWOTH) {

} else {

}


0 commentaires