Comment connaître les droits d'écriture/lecture d'un fichier et/ou répertoire sous Linux en c?? Y-a-t'il des fonctions intégrées (même non-ANSI, je développe que sous nunux...)
Merci à tous d'avance. 8)
Comment connaître les droits d'écriture/lecture d'un fichier et/ou répertoire sous Linux en c?? Y-a-t'il des fonctions intégrées (même non-ANSI, je développe que sous nunux...)
Merci à tous d'avance. 8)
avec : stat, fstat, lstat tu devrais trouver ton bonheur !!!, cf man apres pour la fonction que tu veux !
1)Avant de poster, merci de lire les règles. 2)Utiliser [code] [/code] pour quoter le code ! 3)Conseils pour le forum C [a lire en entier!]
J'avais essayé stat() sur des fichiers listés par un readdir(), mais cela ne fonctionnait pas, il n'affichait que les types des répertoires . et .., le reste basta
![]()
Salut,
Le nom de fichier ((b]d_name[/b]) dans le struct dirent ne contient pas de chemin.
Si tu le passes directement a stat() il faut que tu ajoute le chemin d'acces (complet ou relatif), sinon il recherche le fichier dans le repertoire courant de ton programme.
Par exemple :
a++
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 DIR *dirp; struct dirent *dp; struct stat nfo; char buffer[256]; dir = opendir ( "/tmp" ); while ( (dp=readdir(dirp)) != NULL ) { sprintf (buffer, "/tmp/%s", dp->d_name); stat (buffer, &nfo); /* etc... */ } closedir (dirp);
Pour acceder aux permissions, tu les trouves dans le champ st_mode de la structure stat obtenue par l'appel à stat().
Pour savoir si un droit est positionné, on prend st_mode & masque, où le masque represente la constante symbolique associée au droit (par exemple: S_IRUSR est la lecture par le proprietaire) . Tu trouveras les constantes dans sys/stat.h
Merci à tous pour vos réponses pertinents, vous m'avez bien aidé...![]()
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager