From fab5e7c1de2288e2b9e41f7010ca85f2a641cf63 Mon Sep 17 00:00:00 2001 From: Frans Kaashoek Date: Thu, 4 Jul 2019 08:54:23 -0400 Subject: Make size in stat.h be a uint64 Supporting print long using %l (a bit of cheat) Modify ls to print size using %l We should probably update size in inode too. --- user/ls.c | 2 +- user/printf.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'user') diff --git a/user/ls.c b/user/ls.c index c649c57..3511d87 100644 --- a/user/ls.c +++ b/user/ls.c @@ -43,7 +43,7 @@ ls(char *path) switch(st.type){ case T_FILE: - printf(1, "%s %d %d %d\n", fmtname(path), st.type, st.ino, st.size); + printf(1, "%s %d %d %l\n", fmtname(path), st.type, st.ino, st.size); break; case T_DIR: diff --git a/user/printf.c b/user/printf.c index 0c6b34b..f3b3282 100644 --- a/user/printf.c +++ b/user/printf.c @@ -68,6 +68,8 @@ printf(int fd, const char *fmt, ...) } else if(state == '%'){ if(c == 'd'){ printint(fd, va_arg(ap, int), 10, 1); + } else if(c == 'l') { + printint(fd, va_arg(ap, uint64), 10, 0); } else if(c == 'x') { printint(fd, va_arg(ap, int), 16, 0); } else if(c == 'p') { -- cgit v1.2.3