MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / libc_dirent

Function libc_dirent

examples/libc/dirent.c:15–58  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

13
14#include <dirent.h>
15int libc_dirent()
16{
17 DIR * dirp;
18 long int save3 = 0;
19 long int cur;
20 int i = 0;
21 int result = 0;
22 struct dirent *dp;
23
24 dirp = opendir("/");
25 for (dp = readdir(dirp); dp != NULL; dp = readdir(dirp))
26 {
27 /* save position 3 (after fourth entry) */
28 if (i++ == 3)
29 save3 = telldir(dirp);
30
31 printf("%s\n", dp->d_name);
32
33 /* stop at 400 (just to make sure dirp->__offset and dirp->__size are
34 scrambled */
35 if (i == 400)
36 break;
37 }
38
39 printf("going back past 4-th entry...\n");
40
41 /* go back to saved entry */
42 seekdir(dirp, save3);
43
44 /* Check whether telldir equals to save3 now. */
45 cur = telldir(dirp);
46 if (cur != save3)
47 {
48 printf("seekdir (d, %ld); telldir (d) == %ld\n", save3, cur);
49 result = 1;
50 }
51
52 /* print remaining files (3-last) */
53 for (dp = readdir(dirp); dp != NULL; dp = readdir(dirp))
54 printf("%s\n", dp->d_name);
55
56 closedir(dirp);
57 return result;
58}
59FINSH_FUNCTION_EXPORT(libc_dirent, dirent test for libc);

Callers

nothing calls this directly

Calls 6

opendirFunction · 0.50
readdirFunction · 0.50
telldirFunction · 0.50
printfFunction · 0.50
seekdirFunction · 0.50
closedirFunction · 0.50

Tested by

no test coverage detected