本文主要详细介绍了C语言中rename()函数和remove()函数的使用,这是C语言入门学习中的基础知识。有需要的朋友可以参考一下。
C rename()函数:重命名一个文件或目录。
头文件:
#包含stdio.h
rename()函数用于重命名文件、改变文件路径或改变目录名,其原型是
int rename(char * oldname,char * newname);
[参数] oldname是旧文件名,newname是新文件名。
【返回值】如果文件名修改成功,则返回0,否则返回-1。
重命名文件:
如果newname指定的文件存在,它将被删除。
如果newname和oldname不在同一个目录下,就相当于移动文件。
重命名目录:
如果oldname和oldname都是目录,请重命名目录。
如果newname指定的目录存在并且为空,首先删除newname。
对于newname和oldname目录,调用进程必须具有写权限。
重命名目录时,newname不能包含oldname作为其路径前缀。比如不能将/usr重命名为/usr/foo/testdir,因为旧名称(/usr/foo)是新名称的路径前缀,所以不能删除。
[示例]一个修改文件名的简单程序。
# includestdio.h
#包含fcntl.h
int main(void)
{
char oldname[100],newname[100];
/*提示要重命名的文件和新名称*/
Printf('请告诉我一个文件的完整路径:');
获取(旧名称);
Printf('要修改为:');
获取(新名称);
/*更改文件名*/
if (rename(oldname,newname)==0)
Printf('文件%s已被修改为%s,\n ',oldname,newname);
其他
perror('重命名');
返回0;
}
运行结果:
请告诉我文件的完整路径:test.ncb
您希望将其修改为:test111.ncb
文件测试。ncb已修改为test111.ncb。
该示例首先定义两个数组来存储用户指定的文件名,然后使用gets()函数来接收用户输入的文件名,然后使用rename()函数来修改它们。如果成功,返回值为0,表示修改成功。
注意:在实际开发中尽量避免使用gets()函数。gets()会影响程序的安全性和健壮性。请检查:C语言gets()函数:从流中读取字符串
再比如设计一个程序,在DOS命令行下修改文件。
复制一个新的纯文本窗口。
#包含stdio.h
void main(int argc,char **argv)
{
if(argc 3)
{
printf('用法:%s旧名称新名称\n ',argv[0]);
返回;
}
printf('%s=%s ',argc[1],argv[2]);
if(rename(argv[1],argv[2]) 0)
printf('错误!\ n’);
其他
printf(‘好!\ n’);
}
C remove()函数:删除文件或目录。
头文件:
#包含stdio.h
remove()函数用于删除指定的文件,其原型如下:
int remove(char * filename);
[参数] filename是要删除的文件名,可以是目录。如果参数filename是一个文件,调用unlink()处理;如果参数filename是一个目录,调用rmdir()来处理它。
【返回值】成功则返回0,失败则返回-1,错误原因存储在errno中。
错误代码:
EROFS要写入的文件是只读的。
EFAULT参数的文件名指针超出了可访问的内存空间。
ENAMETOOLONG参数文件名太长。
ENOMEM核心内存不足。
ELOOP参数filename有太多符号连接问题。
EIO I/O访问错误。
[示例]下面的程序演示了如何使用remove()函数删除文件。
# includestdio.h
int main(){
字符文件名[80];
printf('要删除的文件:');
获取(文件名);
if(删除(文件名)==0)
printf('已删除%s ',文件名);
其他
perror('remove ')。
}
运行上面的程序,先声明用来保存文件名的字符数组变量,从控制台获取文件名,然后删除文件,根据删除结果输出相应的提示信息。
注意:在实际开发中尽量避免使用gets()函数。gets()会影响程序的安全性和健壮性。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。