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