欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解C語言中的rename()函數(shù)和remove()函數(shù)的使用方法

 更新時間:2015年09月01日 15:21:08   投稿:goldensun  
這篇文章主要介紹了詳解C語言中的rename()函數(shù)和remove()函數(shù)的使用方法,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下

C語言rename()函數(shù):重命名文件或目錄
頭文件:

#include <stdio.h>

函數(shù)rename()用于重命名文件、改變文件路徑或更改目錄名稱,其原型為
  

 int rename(char * oldname, char * newname);

【參數(shù)】oldname為舊文件名,newname為新文件名。

【返回值】修改文件名成功則返回0,否則返回-1。

重命名文件:

  • 如果newname指定的文件存在,則會被刪除。
  • 如果newname與oldname不在一個目錄下,則相當(dāng)于移動文件。

重命名目錄:

  • 如果oldname和oldname都為目錄,則重命名目錄。
  • 如果newname指定的目錄存在且為空目錄,則先將newname刪除。
  • 對于newname和oldname兩個目錄,調(diào)用進(jìn)程必須有寫權(quán)限。
  • 重命名目錄時,newname不能包含oldname作為其路徑前綴。例如,不能將/usr更名為/usr/foo/testdir,因為老名字( /usr/foo)是新名字的路徑前綴,因而不能將其刪除。

【實例】一個簡單的修改文件名的程序。

#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("已經(jīng)把文件 %s 修改為 %s.\n", oldname, newname);
  else
    perror("rename");
  return 0;
}

運行結(jié)果:

請告訴我一個文件的完整路徑:test.ncb
您想修改為:test111.ncb
已經(jīng)把文件test. ncb修改為test111. ncb

例子首先定義兩個數(shù)組存儲用戶指定的文件名, 接著使用函數(shù)gets()接收用戶輸入的文件名,再使用函數(shù)rename()修改,如果成功則返回值為0,提示修改成功。

注意:實際開發(fā)中盡量避免使用gets()函數(shù),gets()會影響程序的安全性和健壯性,請查看:C語言gets()函數(shù):從流中讀取字符串

又如,設(shè)計一個在DOS命令行下修改文件的程序。
復(fù)制純文本新窗口

#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()函數(shù):刪除文件或目錄
頭文件:

#include <stdio.h>

remove()函數(shù)用于刪除指定的文件,其原型如下:

  int remove(char * filename);

【參數(shù)】filename為要刪除的文件名,可以為一目錄。如果參數(shù)filename 為一文件,則調(diào)用unlink()處理;若參數(shù)filename 為一目錄,則調(diào)用rmdir()來處理。

【返回值】成功則返回0,失敗則返回-1,錯誤原因存于errno。

錯誤代碼:
EROFS  欲寫入的文件為只讀文件。
EFAULT  參數(shù)filename 指針超出可存取內(nèi)存空間。
ENAMETOOLONG  參數(shù)filename 太長。
ENOMEM  核心內(nèi)存不足。
ELOOP  參數(shù)filename 有過多符號連接問題。
EIO I/O  存取錯誤。

【實例】下面的程序演示了如何使用remove()函數(shù)刪除文件。

#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");
}

運行上述程序,首先聲明用于保存文件名的字符數(shù)組變量,從控制臺獲取文件名,然后刪除該文件,并根據(jù)刪除結(jié)果輸出相應(yīng)的提示信息。

注意:實際開發(fā)中盡量避免使用gets()函數(shù),gets()會影響程序的安全性和健壯性

相關(guān)文章

  • C++11線程、互斥量以及條件變量示例詳解

    C++11線程、互斥量以及條件變量示例詳解

    這篇文章主要介紹了C++11線程、互斥量以及條件變量,C++11增加了線程以及線程相關(guān)的類,很方便地支持了并發(fā)編程,使得編寫多線程程序的可移植性得到了很大的提高,本文通過實例代碼給大家詳細(xì)講解,需要的朋友可以參考下
    2023-03-03
  • C語言編程內(nèi)存分配通訊錄靜態(tài)實現(xiàn)示例代碼教程

    C語言編程內(nèi)存分配通訊錄靜態(tài)實現(xiàn)示例代碼教程

    這篇文章主要為大家介紹了C語言編程實現(xiàn)靜態(tài)的通訊錄示例代碼教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2021-10-10
  • C語言實現(xiàn)小型電子詞典

    C語言實現(xiàn)小型電子詞典

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)小型電子詞典,用戶可以進(jìn)行英譯漢、漢譯英等功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • C語言 數(shù)組中重復(fù)的數(shù)字分析及方法

    C語言 數(shù)組中重復(fù)的數(shù)字分析及方法

    這篇文章主要介紹了C語言 數(shù)組中重復(fù)的數(shù)字分析及方法的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • c語言實現(xiàn)的幾種常用排序算法

    c語言實現(xiàn)的幾種常用排序算法

    C,語言常用的排序方法有很多種。比如說冒泡排序,直接交換排序,直接選擇排序,直接插入排序,二分插入排序,快速排序,歸并排序等等,下面這篇文章主要給大家介紹了關(guān)于c語言實現(xiàn)幾種常用的排序算法,需要的朋友可以參考下
    2021-06-06
  • C語言文件操作零基礎(chǔ)新手入門保姆級教程

    C語言文件操作零基礎(chǔ)新手入門保姆級教程

    在實際應(yīng)用中,我們往往需要對文件進(jìn)行操作,下面這篇文章主要給大家分享了關(guān)于C語言文件操作的零基礎(chǔ)新手入門保姆級教程,文中通過示例代碼以及圖片介紹的非常詳細(xì),需要的朋友可以參考下
    2021-10-10
  • C語言三子棋的實現(xiàn)思路到過程詳解

    C語言三子棋的實現(xiàn)思路到過程詳解

    所謂三子棋,就是三行三列的棋盤,玩家可以和電腦下棋,率先連成三個的獲勝。這篇文章主要為大家詳細(xì)介紹了如何通過C語言實現(xiàn)三子棋小游戲,感興趣的小伙伴可以嘗試一下
    2023-02-02
  • c++ String去除頭尾空格的方法

    c++ String去除頭尾空格的方法

    這篇文章主要介紹了c++ String去除頭尾空格的方法,非常具有實用價值,需要的朋友可以參考下
    2014-10-10
  • C++關(guān)鍵字typename的深入理解

    C++關(guān)鍵字typename的深入理解

    本篇文章是對C++中的關(guān)鍵字typename進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • 詳解socket阻塞與非阻塞,同步與異步、I/O模型

    詳解socket阻塞與非阻塞,同步與異步、I/O模型

    這篇文章主要介紹了詳解socket阻塞與非阻塞,同步與異步、I/O模型,socket網(wǎng)絡(luò)編程中的同步,異步,阻塞式,非阻塞式,有何聯(lián)系與區(qū)別,本文將詳細(xì)講訴。
    2016-12-12

最新評論