haben einige Probleme mit dem Drucken Verzeichnisliste, mit write()
syscall. Ich muss dies drucken, ohne printf
oder fprintf(stdout)
zu verwenden. Hier ist mein Code:Warum schreibt (fileno (stdout)) nicht mit ent-> d_name?
#include <dirent.h>
#include <stdio.h>
int main (void) {
DIR *dir;
struct dirent *ent;
char directory[256] = "/Users";
dir = opendir(directory);
while (ent=readdir(dir)) {
write(fileno(stdout), ent->d_name, sizeof(ent->d_name));
}
closedir(dir);
return 0;
}
Und hier ist mein Ausgang (mac os/Users/Ordner):
...!("((
.localized"(∞R Shared∞R €€€(vackdaled..!("((
.localized"(∞R Shared∞R €€€(vackdaled.localized"(∞R Shared∞R €€€(vackdaledShared∞R €€€(vackdaledvackdaled
Aber wenn ich printf
Funktion zu verwenden, es stellt sich heraus, wie folgt aus:
.
..
.localized
Shared
vackdale