10 #include <sys/types.h>
16 * @param[in] file file name
18 * @retval 0 file is "regular", 1 otherwise, -1 on error
20 int file_type(const char *file
)
28 fd
= open(file
, O_RDONLY
);
30 fprintf(stderr
, "%s - fstat %s: %s\n",
31 __func__
, file
, strerror(errno
));
35 if (fstat(fd
, &fsb
)) {
36 fprintf(stderr
, "%s - fstat %s: %s\n",
37 __func__
, file
, strerror(errno
));
42 if (!S_ISREG(fsb
.st_mode
)) {
51 int scan_dir(const char *path
, void (*file_callback
)(const char *))
62 fprintf(stderr
, "%s - %s: %s\n", __func__
, path
, strerror(errno
));
69 file_callback(de
->d_name
);
73 /* de is null on error or EOD */
76 fprintf(stderr
, "%s - %s!\n", __func__
, strerror(errno
));
86 size_t dir_entries(const char *path
)
97 fprintf(stderr
, "%s - %s: %s\n", __func__
, path
, strerror(errno
));
104 if (file_type(de
->d_name
) == 0)
109 /* de is null on error or EOD */
111 fprintf(stderr
, "%s - %s!\n", __func__
, strerror(errno
));