- 论坛徽章:
- 0
|
在看APUE第四章的时候,讲了关于硬连接和软连接的情况。说在unix上硬连接和源文件共用一个inode;而软连接则不是。
我在linux上进行了如下代码检验,发现linux并不是和unix一样,它们都共用一个inode。
请大家帮我看看是不是我的程序或理解有错误:
linux上执行了如下命令:
#ln a b
#ln -s a c
结果如下:
#ls -lt
lrwxrwxrwx 1 root root c -> a
-rw-r--r-- 2 root root a
-rw-r--r-- 2 root root b
代码如下(省去错误检查)
void programStat(){
struct stat buf1, buf2, buf3 ;
stat("/workspace/test/a", &buf1);
printf("inode1=%ld\n",buf1.st_ino);
stat("/workspace/test/b", &buf2);
printf("inode2=%ld\n",buf2.st_ino);
stat("/workspace/test/c", &buf3);
printf("inode3=%ld\n",buf3.st_ino);
}
得到的结果完全一样,我系统上显示为721678
请问这是怎么回事? |
|