X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/6fefc6f5af83f316e18b0cb9dbbde1cea0b98add..f13e160f6aa2f74895ecf1f65099265643836210:/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 7a63ba9..c97dfc9 100644 --- a/lunaix-os/kernel/demos/dir_read.c +++ b/lunaix-os/kernel/demos/dir_read.c @@ -1,22 +1,30 @@ -#include -#include -#include - -LOG_MODULE("RDDIR") +#include +#include +#include +#include void _readdir_main() { - int fd = open("/dev/block", 0); + int fd = open("/dev/./../dev/.", 0); if (fd == -1) { - kprintf(KERROR "fail to open\n"); + printf("fail to open (%d)\n", errno); return; } - struct dirent ent = { .d_offset = 0 }; + char path[129]; + int len = realpathat(fd, path, 128); + if (len < 0) { + printf("fail to read (%d)\n", errno); + } else { + path[len] = 0; + printf("%s\n", path); + } + + struct lx_dirent ent = { .d_offset = 0 }; - while (!readdir(fd, &ent)) { - kprintf(KINFO "%s\n", ent.d_name); + while (sys_readdir(fd, &ent) == 1) { + printf("%s\n", ent.d_name); } close(fd);