• [^] # Re: Et sans getgr[ug]id ?

    Posté par . En réponse au message Un probleme sur mon code. Évalué à 1.

    Non ba ca a pas l'air de marcher, puis maintenant que je verifie le retour de stats il me lache une jolie erreur apres avoir lu dans le dossier le fichier . .. Donc il me dit bien a qui appartient . (Quoi que jsuis pas sur qu'il m'appartienne) et .. mais apres les autres fichiers nada ya une erreur. Apres verification, si ils m'appartiennent drwxr-xr-x 3 mon_login rendu 512 Nov 30 03:22 . drwx------ 4 mon_login rendu 512 Nov 30 11:32 .. -rw-r--r-- 1 mon_login rendu 4 Nov 29 17:07 c -rw-r--r-- 1 mon_login rendu 5 Nov 29 17:07 d -rw-r--r-- 1 mon_login rendu 3 Nov 29 17:07 l drwxr-xr-x 2 mon_login rendu 512 Nov 29 11:48 tmp #include <sys/types.h> #include <stdio.h> #include <stdlib.h> #include <sys/stat.h> #include <unistd.h> #include <grp.h> #include <pwd.h> #include <sys/dir.h> #include <dirent.h> void read_folder(DIR *dir) { #define S_ISUID 0004000 /* set user id on execution */ #define S_ISGID 0002000 /* set group id on execution */ struct dirent *d; struct stat stats; struct group *g; struct passwd *pwd; while (d = readdir(dir)) { if (stat(d->d_name, &stats) != 0) { printf("%d", stat(d->d_name, &stats)); printf ("erreur\n"); exit (-1); } g = getgrgid(stats.st_gid); pwd = getpwuid(stats.st_uid); printf("~~ Variables de stat sur %s ~~ \n\n", d->d_name); printf("-Peripherique: %d\n", stats.st_dev); printf("-Numero I-Noeud: %d\n", stats.st_ino); printf("-Modes: %o\n", stats.st_mode); printf("-Nb Liens materiels: %d\n", stats.st_nlink); printf("-UID: %s\n", pwd->pw_name); printf("-GID: %s\n\n", g->gr_name); } } int main(int argc, char **argv) { static DIR *dir; if (argc != 2) { printf("Comment on m'utilise ?\n%s dossier", argv[0]); exit(1); } if ((dir = opendir(argv[1])) == NULL) { printf("Probleme avec Opendir."); exit(1); } read_folder(dir); closedir(dir); }