-1
write()
syscallを使用して、ディレクトリリストの印刷に問題があります。 printf
またはfprintf(stdout)
を使用せずにこれを印刷する必要があります。 なぜwrite(fileno(stdout))がent-> d_nameで動作しないのですか?
...!("((
.localized"(∞R Shared∞R €€€(vackdaled..!("((
.localized"(∞R Shared∞R €€€(vackdaled.localized"(∞R Shared∞R €€€(vackdaledShared∞R €€€(vackdaledvackdaled
しかし、私は
printf
機能を使用する場合、それは次のように判明:
#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;
}
そして、ここでは私の出力は、(マックOS /ユーザ/フォルダ)である:ここに私のコードです
.
..
.localized
Shared
vackdale