void print_files_long(t_files *file, char *options, int links_column, int size_column) { ft_putchar(file->type); ft_putstr(file->permissions); ft_putchar(' '); pad_with_spaces(file, links_column, 1); ft_putnbr(file->links); ft_putchar(' '); if (!ft_strchr(options, 'g')) { ft_putstr(file->owner); ft_putchar(' '); } ft_putstr(file->group); ft_putchar(' '); print_file_size(file, size_column); ft_putchar(' '); ft_putstr(file->date); ft_putchar(' '); if (ft_strchr(options, 'G')) add_color(file); ft_putstr(file->name); ft_putstr("\033[0m"); if (file->type == 'l') print_link(file); ft_putchar('\n'); }
int main(int argc, const char *argv[]) { if (argc < 2) { fprintf(stderr, "Usage: %s filename len\n", argv[0]); exit(1); } int i = 1; while (i < argc && argv[i][0] == '-') { switch (argv[i][1]) { case 'v': Opt_verbose = 1; break; case 's': Opt_sparse = 1; break; case 'f': Opt_force = 1; break; default: out_err("Unknown option: \'%c\'.", argv[i][1]); exit(2); } ++i; } const char *filename = argv[i]; long long len = atoll(argv[i + 1]); if (len < 0) { out_err("Invalid file length: %lld.\n", len); exit(3); } if (create_sparse_file(filename, len) < 0) { out_err("File creation failed."); exit(4); } if (Opt_verbose) print_file_size(filename); return 0; }
void print_file_info (const const char * filename) { struct stat buf; //获取文件的stat结构 stat (filename, &buf); //打印出文件类型 print_file_mode (buf); //打印储存权限 print_file_permissions (buf); //打印数目 printf (" "); print_file_nlink (buf); //打印文件从属 printf (" "); print_file_bt_user (buf); printf (" "); print_file_bt_grp (buf); //打印文件大小 printf (" "); print_file_size (buf); //打印时间 printf(" "); print_file_mtime (buf); //打印文件名 printf (" "); print_file_name((char *)filename); printf ("\n"); }