ls -lai
的功能LS命令:
-l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等;
-a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出);
-i:显示文件索引节点号(inode)。一个索引节点代表一个文件;
代码:
第一列文件索引节点号(inode)。一个索引节点代表一个文件
printf(
"%llu "
, direntp->d_ino);
第二列表示该文件或目录的权限位。
drwxr-xr-x代表文件的类型及权限
r表是读 (Read) 、w表示写 (Write) 、x表示执行 (eXecute)
以d开头的为文件夹,以-开头的为文件,
第三列:文件链接数.
使用stat结构体中的st_nlink获取
printf("%d ", file_message->st_nlink); // 打印硬链接数
第四列:文件(目录)拥有者
使用stat结构体中的st_uid获取
struct passwd* pwd;
pwd = getpwuid(file_message->st_uid);
printf("%s ",pwd->pw_name);
第五列:文件(目录)拥有者所在的组
使用stat结构体中的st_gid获取
struct group* grp;
grp = getgrgid(file_message->st_gid);
printf("%s ",grp->gr_name);
第六列:文件所占用的空间(以字节为单位)
使用stat结构体中的st_size获取
printf("%5ld ", file_message->st_size); // 打印文件大小
第七列:文件(目录)最近访问(修改)时间
使用stat结构体中的st_mtime获取
void file_mtime(const struct stat* file_message)
{
struct tm* t = localtime(&file_message->st_mtime);
printf("%2d月 %2d %02d:%02d ", t->tm_mon+1, t->tm_mday, t->tm_hour, t->tm_min);
}
第八列:文件名
使用dirent结构体中的d_name获取
printf("%s ", filename); // 打印文件名
原文:https://www.cnblogs.com/0606jxp/p/12811028.html