rename(程式語言函式)

本詞條是多義詞,共4個義項
更多義項 ▼ 收起列表 ▲

rename是一個計算函式,功能是給一個檔案重命名,用該函式可以實現檔案移動功能,把一個檔案的完整路徑的盤符改一下就實現了這個檔案的移動。

基本介紹

  • 外文名:rename
  • 性質:程式語言函式
  • 所屬學科:計算機
函式簡介,用法,函式說明,範例,

函式簡介

頭檔案:在Visual C++ 6.0中用stdio.h或者io.h

用法

int rename(char *oldname, char *newname);
程式例:
#include <stdio.h>
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 <stdio.h>
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 <stdio.h>
int main(int argc,char **argv)
{
if(argc < 3)
{
printf("Usage: %s old_name new_name\n",argv[0]);
return -1;
}
printf("%s => %s\n", argv[1], argv[2]);
if(rename(argv[1], argv[2]) < 0 )
printf("error!\n");
else
printf("ok!\n");
return 0;
}

相關詞條

熱門詞條

聯絡我們