aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile11
-rw-r--r--ls.c13
2 files changed, 21 insertions, 3 deletions
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 <stdlib.h>
#include <sys/types.h>
-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);