Add very simple ls

This commit is contained in:
g1n 2021-11-27 17:27:11 +02:00
parent 8b79ec4168
commit ac8f545de1
2 changed files with 35 additions and 2 deletions

View File

@ -1,6 +1,6 @@
CC= gcc
SRCFILES= cat.c touch.c yes.c mkdir.c echo.c
OBJFILES= cat touch yes mkdir echo
SRCFILES= cat.c touch.c yes.c mkdir.c echo.c ls.c
OBJFILES= cat touch yes mkdir echo ls
CFLAGS= -Wall -Wextra
.PHONY: all clean
@ -11,6 +11,7 @@ all:
$(CC) $(CFLAGS) yes.c -o yes
$(CC) $(CFLAGS) mkdir.c -o mkdir
$(CC) $(CFLAGS) echo.c -o echo
$(CC) $(CFLAGS) ls.c -o ls
clean:
@rm ${OBJFILES}

32
src/ls.c Normal file
View File

@ -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;
}
}