Improve cake allocator's memory utilisation (#43)
[lunaix-os.git] / lunaix-os / usr / ls.c
1 #include <dirent.h>
2 #include <errno.h>
3 #include <stdio.h>
4
5 int
6 main(int argc, const char* argv[])
7 {
8     const char* path = ".";
9     if (argc > 1) {
10         path = argv[1];
11     }
12
13     DIR* dir = opendir(path);
14
15     if (!dir) {
16         return errno;
17     }
18
19     struct dirent* dent;
20
21     while ((dent = readdir(dir))) {
22         if (dent->d_type == DT_DIR) {
23             printf(" %s/\n", dent->d_name);
24         } else if (dent->d_type == DT_SYMLINK) {
25             printf(" %s@\n", dent->d_name);
26         } else {
27             printf(" %s\n", dent->d_name);
28         }
29     }
30
31     int err = errno;
32     if (err) {
33         printf("failed: %d\n",err);
34     }
35
36     closedir(dir);
37
38     return err;
39 }