我必须使 ls -l 功能。我的问题是从 ls -l 中找到总值。这是我的做法。
if (l_option) {
struct stat s;
stat(dir_name, &s);
printf("total %jd\n", (intmax_t)s.st_size/512);
}
我相信我的解决方案根据定义是正确的,即:“对于列出的每个目录,在文件前面加上一行‘total BLOCKS’,其中 BLOCKS 是该目录中所有文件的总磁盘分配。当前的块大小默认为 1024 字节”(信息 ls)但我的功能与真正的 ls 不同。
例如:
>ls -l
>total 60
...并在同一目录中:
>./ls -l
>total 8
如果我写:
>stat .
>File: `.'
>Size: 4096 Blocks: 8 IO Block: 4096 directory
>...