X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/90129c6876c9bac2e468ab82c8264352d1952b4d..a5338b60e111972364a8bc6f07011c6defd213d2:/lunaix-os/kernel/demos/dir_read.c diff --git a/lunaix-os/kernel/demos/dir_read.c b/lunaix-os/kernel/demos/dir_read.c index a0ef65f..caa88cc 100644 --- a/lunaix-os/kernel/demos/dir_read.c +++ b/lunaix-os/kernel/demos/dir_read.c @@ -1,5 +1,6 @@ #include #include +#include #include #include @@ -14,22 +15,20 @@ _readdir_main() return; } - struct dirent ent = { .d_offset = 0 }; - - while (!readdir(fd, &ent)) { - kprintf(KINFO "%s\n", ent.d_name); - } - char path[129]; - - int len = readlinkat(fd, ".", path, 128); + int len = realpathat(fd, path, 128); if (len < 0) { kprintf(KERROR "fail to read (%d)\n", geterrno()); + } else { + path[len] = 0; + kprintf("%s\n", path); } - path[len] = 0; + struct dirent ent = { .d_offset = 0 }; - kprintf("%s\n", path); + while (!readdir(fd, &ent)) { + kprintf(KINFO "%s\n", ent.d_name); + } close(fd);