函式
<cstdio>

rename

int rename ( const char * oldname, const char * newname );
重新命名檔案
oldname 指定的檔案或目錄的名稱更改為 newname

這是一個直接在檔案上執行的操作;該操作不涉及任何流。

如果 oldnamenewname 指定了不同的路徑,並且系統支援此操作,檔案將被移動到新位置。

如果 newname 指定了一個已存在的檔案,函式可能會失敗,也可能會覆蓋現有檔案,具體取決於特定的系統和庫實現。

必須具有適當的檔案訪問許可權。

引數

oldname
C 字串,包含要重新命名和/或移動的現有檔案的名稱。
其值應遵循執行環境的檔名規範,並可以包含路徑(如果系統支援)。
newname
C 字串,包含檔案的新名稱。
其值應遵循執行環境的檔名規範,並可以包含路徑(如果系統支援)。

返回值

如果檔案成功重新命名,則返回零值。
如果失敗,則返回一個非零值。
在大多數庫實現中,失敗時還會將 errno 變數設定為一個特定於系統的錯誤程式碼。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/* rename example */
#include <stdio.h>

int main ()
{
  int result;
  char oldname[] ="oldname.txt";
  char newname[] ="newname.txt";
  result= rename( oldname , newname );
  if ( result == 0 )
    puts ( "File successfully renamed" );
  else
    perror( "Error renaming file" );
  return 0;
}

如果檔案oldname.txt可以成功重新命名為newname.txt以下訊息將被寫入stdout:
File successfully renamed


否則,類似以下的訊息將被寫入stderr:
Error renaming file: Permission denied


另見