UNIX环境高级编程复习——文件和目录(4)

link、unlink、remove和rename函数

#include<unistd.h>
int link(const char *existingpath,const char *newpath);
返回值:若成功则返回0,否则返回-1.

此函数创建一个新的目录项,它引用现有的文件existingpath。
        为了删除一个现由于的目录项,可以调用unlink函数。
#include<unistd.h>
int unlink(const char *pathname);
返回值:若成功则返回0,否则返回-1。

此函数删除目录来项,并将pathname所引用文件的链接数减1。如果还有指向该文件的其他链接,则仍可通过其他链接访问该文件。

    我们也可以用remove函数解除对一个文件或目录的链接。对于文件,remove的功能和unlink相同。对于目录,remove的功能与rmdir相同。
#include<stdio.h>
int remove(const char *pathname);
返回值:若成功则返回0,否则返回-1.

    文件或目录用rename函数更名。
#include<stdio.h>
int rename(const char *oldname,const char *newname);
返回值:若成功则返回0,否则返回-1.

符号链接

硬链接通常有一些限制:
(1)硬链接要求链接和文件位于同一文件系统中。
(2)只有超级用户才能创建指向目录的硬链接。
symlink函数创建一个符号链接。
#include<unistd.h>
int symlink(const char *actualpath,const char *sympath);
返回值:若成功返回0,否则返回-1.

   因为open函数跟随符号链接,所以需要有一种方法打开该链接本身,并读该链接中的名字。
#include<unistd.h>
ssize_t readlink(const char *restrict pathname,char *restrict buf);
返回值:成功则返回读到的字节数,否则返回-1.

此函数组合了open、read和close的所有操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值