| 123456789101112131415161718192021222324252627282930313233343536373839 | #include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <dirent.h>#define _DTIFY(DT) [DT] #DTconst char * const types[] = {	_DTIFY(DT_UNKNOWN),	_DTIFY(DT_FIFO),	_DTIFY(DT_CHR),	_DTIFY(DT_DIR),	_DTIFY(DT_BLK),	_DTIFY(DT_REG),	_DTIFY(DT_LNK),	_DTIFY(DT_SOCK),	_DTIFY(DT_WHT)};int main(int argc, char *argv[]){	DIR *dirh;	struct dirent *de;	const char *mydir = (argc == 1 ? "/" : argv[1]);	if ((dirh = opendir(mydir)) == NULL) {		perror("opendir");		return 1;	}	printf("readdir() says:\n");	while ((de = readdir(dirh)) != NULL)		printf("\tdir entry %s: %s\n", types[de->d_type], de->d_name);	closedir(dirh);	return 0;}
 |