X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fexamples%2Fls.c;h=fbe27a1e5023312bf0a421969ed8989f9d24b4c6;hb=0db48366884f3d6418217b926c4febc1bc2a3c13;hp=d927bc1da696763fae6c2a844d7a4df7c1062eac;hpb=bfc9e18a6723b2315ef521282a8b42119338ece9;p=pintos-anon diff --git a/src/examples/ls.c b/src/examples/ls.c index d927bc1..fbe27a1 100644 --- a/src/examples/ls.c +++ b/src/examples/ls.c @@ -12,14 +12,14 @@ #include #include -static void +static bool list_dir (const char *dir, bool verbose) { int dir_fd = open (dir); if (dir_fd == -1) { printf ("%s: not found\n", dir); - return; + return false; } if (isdir (dir_fd)) @@ -60,13 +60,16 @@ list_dir (const char *dir, bool verbose) } else printf ("%s: not a directory\n", dir); - close (dir_fd); + close (dir_fd); + return true; } int main (int argc, char *argv[]) { + bool success = true; bool verbose = false; + if (argc > 1 && !strcmp (argv[1], "-l")) { verbose = true; @@ -75,12 +78,13 @@ main (int argc, char *argv[]) } if (argc <= 1) - list_dir (".", verbose); + success = list_dir (".", verbose); else { int i; for (i = 1; i < argc; i++) - list_dir (argv[i], verbose); + if (!list_dir (argv[i], verbose)) + success = false; } - return 0; + return success ? EXIT_SUCCESS : EXIT_FAILURE; }