Bonjour,
je suis en train de coder une petite fonction (my_pwd) et je n'arrive pas a fermer un dossier acvec closedir, ce doit etre une petite erreur toute simple mais j'avoue ne pas la voir........
le glibc:
------------------------
plop
*** glibc detected *** ./my_shell: free(): invalid next size (normal): 0x087893d8 ***
======= Backtrace: =========
/lib/libc.so.6[0x314fe1]
/lib/libc.so.6(closedir+0x28)[0x33f318]
--------------------------
le bout de code qui plante:
#include <sys/types.h>
#include <stdlib.h>
#include <unistd.h>
#include <dirent.h>
int get_current_inode()
{
struct dirent *lecture;
DIR *dir;
if ((dir = opendir(".")) == NULL)
exit(EXIT_FAILURE);
while (my_strcmp((lecture = readdir(dir))->d_name, ".") != 0);
my_printf("plop\n");
if (closedir(dir) == -1)
exit(EXIT_FAILURE);
my_printf("plop\n");
return (lecture->d_ino);
}
j'ai verifie toutes mes sous fonctions, le probleme vient bien du closedir(dir)... comme en temoigne le 'plop'
excusez le manque d'accent, qwerty oblige x)
Afficher la suite