Hallo,
ich suchte nach einer simplen Methode, ein Verzeichnis auf Linux auszugeben. Dazu fand ich ein schönes Beispiel http://en.wikipedia.org/wiki/Dirent.h. In diesem Abschnitt....
while ((dp = readdir (dir)) != NULL) {
files[i] = strdup(dp->d_name);
if (files[i] == NULL) {
/* memory allocation failure; free what's been allocated
* so far and return NULL.
*/
while (i > 0) {
free (files[--i]);
}
free (files);
return NULL;
}
printf ("%d: %s\n", i, dp->d_name);
i++;
}
scheint diese Zeile Warnungen beim Kompilieren auszulösen:
files[i] = strdup(dp->d_name);
own_ls2.c:53: Warnung: Implizite Deklaration der Funktion »strdup«
own_ls2.c:53: Warnung: Zuweisung erzeugt Zeiger von Ganzzahl ohne Typkonvertierung
Die zweite Warnung bekomme ich weg, wenn ich eine Typumwandlung durchführe:
files[i] = (char *)strdup(dp->d_name);
Aber ich bin mir nicht ganz sicher, wie ich mit der Warnung "own_ls2.c:53: Warnung: Implizite Deklaration der Funktion »strdup«" umgehen soll. Die Warnung sagt zwar schon alles, aber was bedeutet, dass strdup impilzit deklariert ist?
Danke,
Markus