From c4b20a0ebbde1348e1e085e2ea3be35345d92b7c Mon Sep 17 00:00:00 2001 From: Miguel Date: Fri, 14 Sep 2018 23:10:16 +0200 Subject: tuining userspace and files --- userspace/ls.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) (limited to 'userspace/ls.c') diff --git a/userspace/ls.c b/userspace/ls.c index 413755b..416e139 100644 --- a/userspace/ls.c +++ b/userspace/ls.c @@ -1,4 +1,4 @@ -#include "fs/fs.h" +#include "interface/fs.h" void usage() { @@ -7,10 +7,7 @@ void usage() int main(int argc, char **argv) { - - fs_dirent *dirs=malloc(sizeof(fs_dirent)*25); char *dir=getenv("PWD"); -// printf("PWD = %s\n",dir); if(argc==2) { @@ -26,19 +23,16 @@ int main(int argc, char **argv) } } - int ls=_readdir(dir,dirs,25); - if(ls==-1) + fs_dirent dirs; + uint32_t pos=0; + int cnt=0; + while(1) { - printf("%s: file or directory '%s' not found.\n",argv[0],dir); - return 0; + cnt =_readdir(dir,&dirs,&pos); + if(cnt<1) break; + printf("% 12i %s%c\n",dirs.inode, dirs.name, ((dirs.type==FS_FILE_TYPE_DIR)?'/':' ')); } - int i; - for(i=0;i