函数rename和renameat
文件或者目录可以用rename或者renameat函数来进行重命名。
|#include <stdio.h>
int rename(const char *oldname, const char * newname);
int renameat(int oldfd, const char *oldname, int newfd, const char * newname);
关于oldname和newname的情况可以参考Linux Programmer’s Manual RENAME(2),有点多,懒得写了。
符号链接
符号链接是指向一个问价的间接指针,它与硬链接有所不同,硬链接直接指向文件的i节点。引入符号链接是为了避开硬链接的一些限制
- 硬链接要求链接和文件位于同一文件系统中。
- 只有超级用户才能创建指向目录的硬链接(在底层文件系统支持的情况下)。
对符号链接以及它指向何种对象并无任何的文件系统限制,任何用户都可以创建指向目录的符号链接。
当使用以名字引用文件的函数时,应考虑该函数是否有处理符号链接。也就是该函数是否跟随符号链接到达它所链接的文件。