c语言中怎样给函数重命名 c语言怎么重命名

C语言中 rename 的用法rename函数功能是给一个文件重命名,用该函数可以实现文件移动功能,把一个文件的完整路径的盘符改一下就实现了这个文件的移动 。具体参见下面的程序示例说明 。
头文件:在Visual
C++6.0中用stdio.h或者io.h

法:
int
rename(char
*oldname,
char
*newname);
程序例:
#include
int
main(void)
{
char
oldname[80],
newname[80];
/*
prompt
for
file
to
rename
and
new
name
*/
printf("File
to
rename:
");
gets(oldname);
printf("New
name:
");
gets(newname);
/*
Rename
the
file
*/
if
(rename(oldname,
newname)
==
0)
printf("Renamed
%s
to
%s.\n",
oldname,
newname);
else
perror("rename");
return
0;
}
执行过程:
File
to
rename:
D:\\in.dat
New
name:
G:\\in.dat
Renamed
D:\\in.dat
to
G:\\in.dat.
这样就实现了in.dat从D盘移动到G盘 。
在unix或linux系统中:
#include
int
rename(const
char
*oldname,
const
char
*newname);
函数说明
(1)
如果oldname为一个文件而不是目录 , 那么为该文件更名 。在这种情况下 , 如果newname作为一个目录已存在,则它不能重命名一个目录 。如果newname已存在,而且不是一个目录 , 则先将其删除然后将oldname更名为newname 。对oldname所在目录以及newname所在的目录,调用进程必须具有写许可权,因为将更改这两个目录 。
(2)
如若oldname为一个目录,那么为该目录更名 。如果newname已存在,则它必须是一个目录,而且该目录应当是空目录(空目录指的是该目录中只有.
和..
项) 。如果newname存在(而且是一个空目录),则先将其删除,然后将oldname更名为newname 。另外,当为一个目录更名时,newname不能包含oldname作为其路径前缀 。例如,不能将/usr更名为/usr/foo/testdir,因为老名字(
/usr/foo)是新名字的路径前缀,因而不能将其删除 。
(3)
作为一个特例,如果oldname和newname引用同一文件,则函数不做任何更改而成功返回 。
返回值
执行成功则返回0 , 失败返回-1,错误原因存于errno
范例
#include
int
main(int
argc,char
**argv)
{
if(argc
3)
{
printf("Usage:
%s
old_name
new_name\n",argv[0]);
return
-1;
}
printf("%s
【c语言中怎样给函数重命名 c语言怎么重命名】=
%s\n",
argv[1],
argv[2]);
if(rename(argv[1],
argv[2])
)
printf("error!\n");
else
printf("ok!\n");
return
0;
}
如何优雅地为程序中的变量和函数命名简言之,根据语意来选择词汇,别无它法……然而,有时我们会不知用什么词汇更合适 。
当你想到某个抽象的东西,你更倾向于最先想到的词语,除非你故意不这样,这些词也会抢着出现,直到模糊或改变你的想法 。
当你想到一个具体的对象,你觉得词穷 , 然后你想描述的已经看到了,然后你继续寻找更适合它的词 。
哈哈 , 命名竟成了编程中最难的事~
Martin Fowler曾经在一篇文章中曾经引用过Phil Karlton的话:
There are only two hard things in Computer Science: cache invalidation
and naming things.
他说这句话在很长的一段时间内都是他最喜欢的话 。可见命名对于广大的程序员来说的确是个大问题 。

推荐阅读