From 1cb7a6bd1ab40188987feeaeefce021d441819e6 Mon Sep 17 00:00:00 2001 From: Michal Idziorek Date: Mon, 24 Nov 2014 03:11:16 +0100 Subject: some progress with userspace --- userspace/ls.c | 46 ++++++++++++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 18 deletions(-) (limited to 'userspace/ls.c') diff --git a/userspace/ls.c b/userspace/ls.c index 5b5034b..4cbcb6d 100644 --- a/userspace/ls.c +++ b/userspace/ls.c @@ -7,28 +7,38 @@ void usage() int main(int argc, char **argv) { - fs_dirent *dirs=malloc(sizeof(fs_dirent)*25); + char *dir; + fs_dirent *dirs=malloc(sizeof(fs_dirent)*25); - if(argc!=2) + if(argc!=2) + { + dir=getenv("PWD"); + } + else + { + if(argv[1][0]=="/")dir=argv[1]; + else { - usage(); - return 0; - } - - char *dir=argv[1]; - int ls=readdir(dir,dirs,25); - if(ls==-1) - { - printf("%s: file or directory '%s' not found.\n",argv[0],dir); - return 0; - } - + char buf[256]; + sprintf(buf,"%s/%s",getenv("PWD"),argv[1]); + dir=buf; - int i; - for(i=0;i