int s_dir_file (char *path, s_dir_t *dir) { s_dir_t *s_dir; s_file_t *s_file; struct stat stbuf; if (stat(path, &stbuf)) { printf("Cannot access %s\n", path); goto err; } if (S_ISDIR(stbuf.st_mode & S_IFMT)) { s_dir_init(&s_dir); s_dir->path = strdup(path); s_dir_path2dir_name(path, &s_dir->base, &s_dir->name); s_dir->up = dir; s_list_add(dir->dirs, s_dir, -1); s_dir_walk(path, s_dir); } if (S_ISREG(stbuf.st_mode & S_IFMT)) { s_file_init(&s_file); s_file->path = strdup(path); s_dir_path2dir_name(path, &s_file->base, &s_file->name); s_list_add(dir->files, s_file, -1); } return 0; err: return -1; }
int main(int argc, char **argv) { struct s_file *sfile; t_lsargs lsargs; if (argc == 0) exit(1); lsargs = analyze_args(argv); sfile = s_file_init(lsargs); initialize(sfile, lsargs); //free(sfile);//? s_file_free(sfile); //// return (0); }