Add very simple ls
This commit is contained in:
parent
8b79ec4168
commit
ac8f545de1
|
@ -1,6 +1,6 @@
|
||||||
CC= gcc
|
CC= gcc
|
||||||
SRCFILES= cat.c touch.c yes.c mkdir.c echo.c
|
SRCFILES= cat.c touch.c yes.c mkdir.c echo.c ls.c
|
||||||
OBJFILES= cat touch yes mkdir echo
|
OBJFILES= cat touch yes mkdir echo ls
|
||||||
CFLAGS= -Wall -Wextra
|
CFLAGS= -Wall -Wextra
|
||||||
|
|
||||||
.PHONY: all clean
|
.PHONY: all clean
|
||||||
|
@ -11,6 +11,7 @@ all:
|
||||||
$(CC) $(CFLAGS) yes.c -o yes
|
$(CC) $(CFLAGS) yes.c -o yes
|
||||||
$(CC) $(CFLAGS) mkdir.c -o mkdir
|
$(CC) $(CFLAGS) mkdir.c -o mkdir
|
||||||
$(CC) $(CFLAGS) echo.c -o echo
|
$(CC) $(CFLAGS) echo.c -o echo
|
||||||
|
$(CC) $(CFLAGS) ls.c -o ls
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@rm ${OBJFILES}
|
@rm ${OBJFILES}
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <dirent.h>
|
||||||
|
|
||||||
|
// TODO: add more sorted output (. and .. in the top) and flags
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
DIR *dp;
|
||||||
|
struct dirent *ep;
|
||||||
|
if (argc > 1) {
|
||||||
|
dp = opendir(argv[1]);
|
||||||
|
if (dp != NULL) {
|
||||||
|
while ((ep = readdir (dp))) {
|
||||||
|
printf("%s\n", ep->d_name);
|
||||||
|
}
|
||||||
|
closedir(dp);
|
||||||
|
} else {
|
||||||
|
perror("ls");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
dp = opendir("./");
|
||||||
|
if (dp != NULL) {
|
||||||
|
while ((ep = readdir (dp))) {
|
||||||
|
printf("%s\n", ep->d_name);
|
||||||
|
}
|
||||||
|
closedir(dp);
|
||||||
|
} else {
|
||||||
|
perror("ls");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue