#include #include #include #include #include #include int main(int argc, char**argv) { if(argc != 2) { fprintf(stderr, "Usage: %s \n", argv[0]); return EXIT_FAILURE; } /* run command 'ls ' and output the result in f */ char command[1024]; snprintf(command, 1024, "ls %s", argv[1]); FILE *f = popen(command, "r"); char* ret = NULL; do { char filename[1024]; ret = fgets(filename, 1024, f); if(!ret) { break; } char* substr = strstr(filename, "\n"); if(substr) { substr[0]='\0'; } char full_filename[1024]; snprintf(full_filename, 1024, "%s/%s", argv[1], filename); struct stat s; stat(full_filename, &s); if(s.st_mode & S_IFDIR) { printf("New directory: %s\n", full_filename); } else { printf("New file: %s\n", full_filename); } } while(ret); pclose(f); return EXIT_SUCCESS; }