1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19: #include <errno.h>
20: #include <stddef.h>
21: #include <stdio.h>
22: #include <stdlib.h>
23: #include <dirent.h>
24:
25:
26: static int
27: test (const char *name)
28: {
29: DIR *dirp;
30: struct dirent *entp;
31: int retval = 0;
32:
33: puts (name);
34:
35: dirp = opendir (name);
36: if (dirp == NULL)
37: {
38: perror ("opendir");
39: return 1;
40: }
41:
42: errno = 0;
43: while ((entp = readdir (dirp)) != NULL)
44: printf ("%s\tfile number %lu\n",
45: entp->d_name, (unsigned long int) entp->d_fileno);
46:
47: if (errno)
48: {
49: perror ("readdir");
50: retval = 1;
51: }
52:
53: if (closedir (dirp) < 0)
54: {
55: perror ("closedir");
56: retval = 1;
57: }
58:
59: return retval;
60: }
61:
62: int
63: main (int argc, char **argv)
64: {
65: int retval = 0;
66: --argc;
67: ++argv;
68:
69: if (argc == 0)
70: retval = test (".");
71: else
72: while (argc-- > 0)
73: retval |= test (*argv++);
74:
75: return retval;
76: }