summaryrefslogtreecommitdiff
path: root/ls.c
blob: c507523a5c37baff31a3bf3af7de1a53fc4e7d2e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <dirent.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>


int ls(const char * path)
{
	DIR * dir;
	if (NULL == (dir = opendir(path))) {
		perror(path);
		return 1;
	}
	struct dirent * entry;
	while (NULL != (entry = readdir(dir)))
		printf("%s\n", entry->d_name);
	closedir(dir);
	return 0;
}


int main(int argc, char * argv[])
{
	int res = 0;
	if (argc == 1)
		res |= ls(".");
	for (int i = 1; i < argc; ++i)
		res |= ls(argv[i]);
	return res;
}