From 1b74462e5f96f5ca97f78a2ae9601bcd30ce0155 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Wed, 16 Mar 2016 22:49:20 +1300 Subject: ls(1) accepts one argument --- Makefile | 11 +++++++++++ ls.c | 13 ++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..1a71395 --- /dev/null +++ b/Makefile @@ -0,0 +1,11 @@ +.PHONY: all clean + +CC = clang +CFLAGS = -std=c90 -Weverything + +all : ls + +clean : + rm -f -- *.o + rm -f ls + diff --git a/ls.c b/ls.c index 768897d..4b48c9c 100644 --- a/ls.c +++ b/ls.c @@ -3,12 +3,19 @@ #include #include -int main(void) +int main(int argc, char **argv) { - struct dirent *dirent; + char *dirname; DIR *dir; + struct dirent *dirent; + + if (argc > 1) { + dirname = argv[1]; + } else { + dirname = "."; + } - dir = opendir("."); + dir = opendir(dirname); while ((dirent = readdir(dir)) != NULL) { fprintf(stdout, "%s\n", dirent->d_name); -- cgit v1.2.3