更改文件名

通过使用rename()函数,既可以重命名文件,有可以将文件移至同一文件系统中的另一目录。函数会将oldpath所表示的现有的一个路径名重命名为newpath参数所指定的路径名。

#include <stdio.h>
 int rename(const char *oldpath, const char *newpath);

rename()调用仅操作目录条目,而不移动文件数据,改名既不影响指向该文件的其他硬链接,也不影响持有该文件打开描述符的任何进程,因为这些文件描述符指向的是打开文件描述,与文件名无关。
如果newpath已经存在,则将其覆盖。如果newpath与oldpath指向同一文件,则不发生变化(且调用成功)。
如果oldpath指定文件,而非目录,那么就不能将newpath指定为一个目录的路径名(否则将errno置为EISDIR)。要想重命名一个文件到某一目录中(亦将文件移到另一个目录),newpath必须包含新的文件名。如下调用既将一个文件移动到另一个目录中,同时又将其改名:rename(“sub1/x”, “sub2/y”);。
如果oldpath指定为目录名,则意在重命名该目录。这种情况下,必须保证newpath要么不存在,要么是一个空目录的名称。否则将会出错。
如果oldpath是一目录,则newpath不能包含oldpath作为其目录前缀。例如,不能将/home/1000phone重命名为/home/1000phone/work。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值