詳解C說話中的rename()函數和remove()函數的應用辦法。本站提示廣大學習愛好者:(詳解C說話中的rename()函數和remove()函數的應用辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是詳解C說話中的rename()函數和remove()函數的應用辦法正文
C說話rename()函數:重定名文件或目次
頭文件:
#include <stdio.h>
函數rename()用於重定名文件、轉變文件途徑或更改目次稱號,其原型為
int rename(char * oldname, char * newname);
【參數】oldname為舊文件名,newname為新文件名。
【前往值】修正文件名勝利則前往0,不然前往-1。
重定名文件:
重定名目次:
【實例】一個簡略的修正文件名的法式。
#include<stdio.h> #include <fcntl.h> int main(void) { char oldname[100], newname[100]; /* prompt for file to rename and new name */ printf("請告知我一個文件的完全途徑: "); gets(oldname); printf("您想修正為: "); gets(newname); /* 更改文件名 */ if (rename(oldname, newname) == 0) printf("曾經把文件 %s 修正為 %s.\n", oldname, newname); else perror("rename"); return 0; }
運轉成果:
請告知我一個文件的完全途徑:test.ncb 您想修正為:test111.ncb 曾經把文件test. ncb修正為test111. ncb
例子起首界說兩個數組存儲用戶指定的文件名, 接著應用函數gets()吸收用戶輸出的文件名,再應用函數rename()修正,假如勝利則前往值為0,提醒修正勝利。
留意:現實開辟中盡可能防止應用gets()函數,gets()會影響法式的平安性和硬朗性,請檢查:C說話gets()函數:從流中讀取字符串
又如,設計一個在DOS敕令行下修正文件的法式。
復制純文本新窗口
#include <stdio.h> void main(int argc, char **argv) { if(argc < 3) { printf("Usage: %s old_name new_name\n", argv[0]); return; } printf("%s=>%s", argc[1], argv[2]); if(rename(argv[1], argv[2]) < 0) printf("error!\n"); else printf("ok!\n"); }
C說話remove()函數:刪除文件或目次
頭文件:
#include <stdio.h>
remove()函數用於刪除指定的文件,其原型以下:
int remove(char * filename);
【參數】filename為要刪除的文件名,可認為一目次。假如參數filename 為一文件,則挪用unlink()處置;若參數filename 為一目次,則挪用rmdir()來處置。
【前往值】勝利則前往0,掉敗則前往-1,毛病緣由存於errno。
毛病代碼:
EROFS 欲寫入的文件為只讀文件。
EFAULT 參數filename 指針超越可存取內存空間。
ENAMETOOLONG 參數filename 太長。
ENOMEM 焦點內存缺乏。
ELOOP 參數filename 有過量符號銜接成績。
EIO I/O 存取毛病。
【實例】上面的法式演示了若何應用remove()函數刪除文件。
#include<stdio.h> int main(){ char filename[80]; printf("The file to delete:"); gets(filename); if( remove(filename) == 0 ) printf("Removed %s.", filename); else perror("remove"); }
運轉上述法式,起首聲明用於保留文件名的字符數組變量,從掌握台獲得文件名,然後刪除該文件,並依據刪除成果輸入響應的提醒信息。
留意:現實開辟中盡可能防止應用gets()函數,gets()會影響法式的平安性和硬朗性