C 庫 - rename() 函式



C 庫函式 rename(const char *old_filename, const char *new_filename) 用於將由 old_filename 指定的檔名更改為 new_filename。

語法

以下是 C 庫函式 rename() 的語法:

int rename(const char *old_filename, const char *new_filename);

引數

此函式接受兩個引數:

  • old_filename:指向一個以 null 結尾的字串的指標,該字串指定要重新命名的檔名。這是檔案的當前名稱。
  • new_filename:指向一個以 null 結尾的字串的指標,該字串指定檔案的新名稱。這是您想賦予檔案的新名稱。

返回值

rename 函式返回整數或非整數的值

1. 0:如果操作成功。

2. 非零值:如果操作失敗。確切的值可能會有所不同,但通常可以使用 errno 獲取有關錯誤的更多資訊。常見錯誤包括:

  • EACCES:許可權被拒絕。
  • ENOENT:old_filename 指定的檔案不存在。
  • EEXIST:new_filename 指定名稱的檔案已存在。
  • EINVAL:指定的名稱無效。

示例 1:簡單的重新命名

此示例將名為 oldfile.txt 的檔案重新命名為 newfile.txt。

以下是 C 庫 rename() 函式的示例。

#include <stdio.h>

int main() {
   if (rename("oldfile.txt", "newfile.txt") == 0) {
       printf("File renamed successfully.\n");
   } else {
       perror("Error renaming file");
   }
   return 0;
}

輸出

以上程式碼產生以下結果:

File renamed successfully.

示例 2:帶有錯誤處理的重新命名

此示例嘗試重新命名一個不存在的檔案,演示了錯誤處理和 errno 的用法。

#include <stdio.h>
#include <errno.h>

int main() {
   if (rename("nonexistentfile.txt", "newname.txt") != 0) {
       perror("Error renaming file");
       printf("Error code: %d\n", errno);
   } else {
       printf("File renamed successfully.\n");
   }
   return 0;
}

輸出

執行以上程式碼後,我們將得到以下結果:

Error renaming file: No such file or directory
Error code: 2
廣告