-
rename
(編程語言函數)
鎖定
rename是一個計算函數,功能是給一個文件重命名,用該函數可以實現文件移動功能,把一個文件的完整路徑的盤符改一下就實現了這個文件的移動。
- 外文名
- rename
- 性 質
- 編程語言函數
- 所屬學科
- 計算機
rename函數簡介
頭文件:在Visual C++ 6.0中用stdio.h或者io.h
rename用法
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);
rename函數説明
- 如果oldname為一個文件而不是目錄,那麼為該文件更名。在這種情況下,如果newname作為一個目錄已存在,則它不能重命名一個目錄。如果newname已存在,而且不是一個目錄,則先將其刪除然後將oldname更名為newname。對oldname所在目錄以及newname所在的目錄,調用進程必須具有寫許可權,因為將更改這兩個目錄。
- 如若oldname為一個目錄,那麼為該目錄更名。如果newname已存在,則它必須是一個目錄,而且該目錄應當是空目錄(空目錄指的是該目錄中只有. 和.. 項)。如果newname存在(而且是一個空目錄),則先將其刪除,然後將oldname更名為newname。另外,當為一個目錄更名時,newname不能包含oldname作為其路徑前綴。例如,不能將/usr更名為/usr/foo/testdir,因為老名字( /usr/foo)是新名字的路徑前綴,因而不能將其刪除。
- 作為一個特例,如果oldname和newname引用同一文件,則函數不做任何更改而成功返回。
返回值 執行成功則返回0,失敗返回-1,錯誤原因存於errno
rename範例
#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; }
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:2次歷史版本
- 最近更新: q512247971