Linux 文件操作系统调用详解
1. 动态库软链接
在Linux系统中,标准动态库名称通常会通过软链接指向实际的动态库版本,例如libc.so.6 -> libc.2.7.so。当需要更换动态库的版本时,库安装程序只需修改软链接,使其指向新安装的库即可。
不过,软链接存在一个缺点,即目标文件可能会不存在。在Linux中,当使用ls命令时,如果软链接指向的目标文件不存在,链接会以暗红色显示,以此提醒用户该链接已损坏。另外,若foo -> /a/b/c是一个软链接,使用open("foo", 0)系统调用打开的将是链接指向的文件/a/b/c,而非链接文件本身。所以,open()和read()系统调用无法读取软链接文件,若要读取软链接文件的内容,必须使用readlink系统调用。
2. stat 系统调用
stat、lstat和fstat这三个系统调用用于返回文件的信息。可以使用man 2 stat命令查看stat系统调用的手册页。
2.1 Stat 文件状态
- 函数原型