这个命令的代码真短。核心意思是
result = argv[1];
len = dir_len (result);
if (! len)
{
result = ˙
len = 1;
}
{
result = ˙
len = 1;
}
fwrite (result, 1, len, stdout);
putchar ('\n');
我在本地试验了一下,如果
dirname /home/mm
显示为
/home
也就是命令显示出来的是目录名。
但在哪里去掉最后一级文件名呢?我打印出result,确实没有去掉文件名,因为只能是dir_len中去掉了,但进去,又只看到一个
#define dir_len rm_dir_len
真是奇怪。
putchar ('\n');
我在本地试验了一下,如果
dirname /home/mm
显示为
/home
也就是命令显示出来的是目录名。
但在哪里去掉最后一级文件名呢?我打印出result,确实没有去掉文件名,因为只能是dir_len中去掉了,但进去,又只看到一个
#define dir_len rm_dir_len
真是奇怪。