Salut,
Je cherche à récupérer le nom d'ujn fichier ouvert à partir de son pointeur (ou par n'importe quelle autre méthode d'ailleurs).
Quelqu'un peut il m aider ?
Salut,
Je cherche à récupérer le nom d'ujn fichier ouvert à partir de son pointeur (ou par n'importe quelle autre méthode d'ailleurs).
Quelqu'un peut il m aider ?
Si tu possèdes un descripteur vers le fichier, tu peux utiliser la fonction fstat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part int fstat(int filedes, struct stat *buf);
Salut,
désolé mais fstat() ne permet pas d'obtenir le nom du fichier
http://www.linux-france.org/article/...2/fstat-2.html
La structure contient plusieurs infos sur le fichier mais pas le nom:
Et je ne sais pas comment on peut récuperer le nom du fichier ...
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
16 struct stat { dev_t st_dev; /* Périphérique */ ino_t st_ino; /* Numéro i-noeud */ mode_t st_mode; /* Protection */ nlink_t st_nlink; /* Nb liens matériels */ uid_t st_uid; /* UID propriétaire */ gid_t st_gid; /* GID propriétaire */ dev_t st_rdev; /* Type périphérique */ off_t st_size; /* Taille totale en octets */ unsigned long st_blksize; /* Taille de bloc pour E/S */ unsigned long st_blocks; /* Nombre de blocs alloués */ time_t st_atime; /* Heure dernier accès */ time_t st_mtime; /* Heure dernière modification */ time_t st_ctime; /* Heure dernier changement */ };
Par contre si il s'agit d'un terminal (stdin et stdout sous unix/linux), tu peux utiliser ttyname() mais il faut que le descripteur de fichier corresponde à un terminal (isatty())
http://www.linux-france.org/article/...ttyname-3.html
http://www.linux-france.org/article/.../isatty-3.html
a++
Autant pour moi. J'ai l'habitude d'utiliser en même temps struct dirent et struct stat. Le nom du fichier n'est disponible que dans la structure dirent.
Je n'ai pas de fonction sous la main, mais ça m'étonne qu'il n'existe pas de fonction qui récupère le nom d'un fichier à partir de son numéro d'inode...
Tu parles d'un pointeur ... vers quoi ? Vers FILE* ? Dans ce cas là tu dois pouvoir retrouver le nom du fichier vu que tu l'as ouvert avec fopen ... T'as qu'à le stocker qq.part ! Fait une structure si tu veux pas le perdre :
@+ Haypo
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 typedef struct { FILE *f; char *nom; } anti_tete_en_lair;
Partager