summaryrefslogtreecommitdiff
path: root/ls.c
diff options
context:
space:
mode:
authorkaashoek <kaashoek>2006-08-14 21:22:13 +0000
committerkaashoek <kaashoek>2006-08-14 21:22:13 +0000
commitd7b3b802f414dbf18b5e196ab1a342b19d5f7be8 (patch)
treeccbb34d956ae638d1fbcb24d850b62edb05e841a /ls.c
parentbdb66433031ca96f2fd127995186623cd10c45b3 (diff)
downloadxv6-labs-d7b3b802f414dbf18b5e196ab1a342b19d5f7be8.tar.gz
xv6-labs-d7b3b802f414dbf18b5e196ab1a342b19d5f7be8.tar.bz2
xv6-labs-d7b3b802f414dbf18b5e196ab1a342b19d5f7be8.zip
user-level programs: mkdir and rm
shell parses arguments (very simplistic) readme version of README (sh doesn't deal with capital characters) printf recognizes %c nicer output format for ls
Diffstat (limited to 'ls.c')
-rw-r--r--ls.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/ls.c b/ls.c
index 9731f6f..607a857 100644
--- a/ls.c
+++ b/ls.c
@@ -13,6 +13,7 @@ main(int argc, char *argv[])
int fd;
uint off;
uint sz;
+ int i;
if(argc > 1){
puts("Usage: ls\n");
@@ -42,8 +43,13 @@ main(int argc, char *argv[])
printf(1, "stat: failed\n");
break;
}
- printf(1, "%s t %d ino %d sz %d\n", dirent.name, st.st_type,
- dirent.inum, st.st_size);
+ for (i = 0; i < DIRSIZ; i++) {
+ if (dirent.name[i] != '\0')
+ printf(1, "%c", dirent.name[i]);
+ else
+ printf(1, " ");
+ }
+ printf(1, "%d %d %d\n", st.st_type, dirent.inum, st.st_size);
}
}
close(fd);