Linux文件操作系统调用详解
1. 动态库软链接
在Linux系统中,标准动态库名通常会与动态库的实际版本进行链接,例如libc.so.6 -> libc.2.7.so。当需要将实际动态库更换为不同版本时,库安装程序只需更改软链接,使其指向新安装的库即可。
不过,软链接存在一个缺点,即目标文件可能不再存在。在Linux中,ls命令会以暗红色显示这种损坏的链接,提醒用户链接已断开。另外,open("foo", 0)系统调用(假设foo -> /a/b/c是一个软链接)会打开链接指向的文件/a/b/c,而不是链接文件本身。因此,若要读取软链接文件的内容,必须使用readlink系统调用。
2. stat系统调用
2.1 stat文件状态
stat、fstat和lstat这几个系统调用用于获取文件的状态信息。以下是它们的基本信息:
-函数原型:
#include <sys/types.h> #include <sys/stat.h> #include <unistd.h> int stat(const char *file_name, struct stat *buf