《UNIX环境高级编程》笔记--硬链接和符号链接
1.硬链接
每个文件都会占用一个 inode ,文件内容由 inode 的记录来指向想要读取该文件,必须要经过目录记录的文件名来指向到正
确的 inode 号码才能读取。也就是说,其实文件名只与目录有关,但是文件内容则与 inode 有关。那么想一想,
上图的意思是,你可以透过 1 或 2 的目录之 inode 指定的 block 找到两个不同的档名,而不管使用哪个档名均可以指到 real 那个
inode 去读取到最终数据!那这样有什么好处呢?最大的好处就是『安全』!如同上图中,
*跟随符号链接是指跟随符号链接到达实际的文件
下面2个函数是对符号链接文件进行操作。symlink函数创建一个符号链接,函数声明如下:
#include <stdio.h>#include <unistd.h>#include <string.h>int main(void){ char buf[256]; memset(buf,0,256); if(readlink("symblicfile",buf,256)<0){ perror("readlink"); return -1; } buf[255] = 0; printf("%s\n",buf); return 0;}运行结果:yan@yan-vm:~/apue$ ./a.out
desfile