正文

回到顶部

符号链接

符号链接的用途

符号链接是对一个文件的间接指针,它与前面介绍的硬连接不同,硬连接指向文件的i节点。引入符号链接是为了避开硬连接的一些限制:

  • 硬链接通常要求链接和文件位于同一文件系统中。

  • 只有超级用户才能创建指向目录的硬链接(在底层文件系统支持的情况下)。

而对于符号链接:

  • 对符号链接以及它指向何种对象并无任何文件系统限制;

  • 任何用户都可以创建指向目录的符号链接。

跟随符号链接

符号链接一般用于将一个文件或整个目录结构移到系统中另外一个位置。
用符号链接作为函数参数时,需要了解该函数所处理的是否是符号链接指向的文件。也就是是否跟随符号链接

  • 如果该函数具有处理符号链接的功能,则其路径名参数引用由符号链接指向的文件。

  • 否则,一个路径名参数引用链接本身。

图4-17列出了本章中所说明的各个函数是否处理符号链接。
万码学堂,电脑培训,计算机培训,Java培训,JavaEE开发培训,青岛软件培训,软件工程师培训

特殊的例子:
如果同时使用O_CREAT和O_EXCL,调用open函数。

  • 我们知道如果要打开的是文件,而文件已经存在,则出错。如果不存在则创建此文件,这使得测试和创建两者成为一个原子操作。

  • 如果要打开的是符号链接,不管符号链接指向的文件是否存在,都会返回错误。这种处理方式的意图是堵塞一个安全性漏洞,以防止具有特权的进程被诱骗写错误的文件。
    例如:进程A用于写已经存在的A.txt文件,如果删除A.txt文件,而把A.txt文件制作成一个符号链接指向自定义文件,进程就可以随意写任何文件了。

延伸阅读

学习是年轻人改变自己的最好方式-Java培训,做最负责任的教育,学习改变命运,软件学习,再就业,大学生如何就业,帮大学生找到好工作,lphotoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训学习是年轻人改变自己的最好方式