C語言可以通過fopen函數(shù)創(chuàng)建一個新文件。
創(chuàng)新互聯(lián)建站專注服務(wù)器托管服務(wù)十余年,提供服務(wù)器租用、雅安服務(wù)器托管、空間域名、云服務(wù)器、云主機租用、綿陽電信機房機柜租用、建站等服務(wù)
細(xì)節(jié)如下:
使用fopen需要添加頭文件 #include stdio.h
創(chuàng)建一個新的文本文件語句如下: FILE *fp=fopen("文件名", "w");
創(chuàng)建一個新的二進(jìn)制文件的語句如下:FILE *fp=fopen("文件名", "wb");
該函數(shù)詳細(xì)說明如下:
函數(shù)原型:FILE * fopen(const char * path,const char * mode);
返回值:文件順利打開后,指向該流的文件指針就會被返回。如果文件打開失敗則返回NULL,并把錯誤代碼存在errno中。
參數(shù)說明:
參數(shù)path字符串包含欲打開的文件路徑及文件名,參數(shù)mode字符串則代表著流形態(tài)。
mode有下列幾種形態(tài)字符串:
r 以只讀方式打開文件,該文件必須存在。
r+ 以可讀寫方式打開文件,該文件必須存在。
rb+ 讀寫打開一個二進(jìn)制文件,允許讀寫數(shù)據(jù),文件必須存在。
w 打開只寫文件,若文件存在則文件長度清為0,即該文件內(nèi)容會消失。若文件不存在則建立該文件。
w+ 打開可讀寫文件,若文件存在則文件長度清為零,即該文件內(nèi)容會消失。若文件不存在則建立該文件。
a 以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數(shù)據(jù)會被加到文件尾,即文件原先的內(nèi)容會被保留。
a+ 以附加方式打開可讀寫的文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數(shù)據(jù)會被加到文件尾后,即文件原先的內(nèi)容會被保留。
wb 只寫打開或新建一個二進(jìn)制文件;只允許寫數(shù)據(jù)。
wb+ 讀寫打開或建立一個二進(jìn)制文件,允許讀和寫。
ab+ 讀寫打開一個二進(jìn)制文件,允許讀或在文件末追加數(shù)據(jù)。
例子代碼
FILE?*fp;????//定義文件指針??
fp=fopen("d:\\out.txt","w");//打開文件
//寫文件的代碼
fclose(fp);
//關(guān)閉文件
在C語言中可以通過調(diào)用創(chuàng)建文件夾函數(shù),或者使用系統(tǒng)命令兩種方法創(chuàng)建文件夾。
一、調(diào)用庫函數(shù)。
C語言庫函數(shù)創(chuàng)建文件夾依賴于編譯器,不同編譯器使用的創(chuàng)建文件夾函數(shù)不同。 舉例如下:
1、VC/VS編譯器。
函數(shù)聲明為 int _mkdir( const char *dirname );
頭文件為direct.h。
功能為創(chuàng)建dirname文件夾,并返回結(jié)果,如果成功則返回0,否則返回-1。
2、TC編譯器。
聲明形式為 int mkdir(char *pathname);
頭文件為dir.h。
功能為創(chuàng)建pathname文件夾,并返回結(jié)果,如果成功則返回0,否則返回-1。
3、gcc編譯器。
聲明形式為int mkdir(const char *pathname, mode_t mode);
其中函數(shù)頭文件為sys/stat.h, 參數(shù)類型mode_t頭文件為sys/types.h。
與其他編譯器的創(chuàng)建文件夾函數(shù)不同,gcc創(chuàng)建文件夾多了一個參數(shù)mode, 指定被創(chuàng)建文件夾的權(quán)限。
函數(shù)功能為創(chuàng)建文件夾名為pathname, 權(quán)限值為mode的文件夾。 如果成功則返回0,否則返回-1。
二、通過系統(tǒng)命令調(diào)用。
在C 語言中可以通過system函數(shù)調(diào)用系統(tǒng)命令,具體命令格式取決于操作系統(tǒng)。
比如在Linux/Unix下,可以使用:
system("mkdir ./XXX");
來創(chuàng)建XXX文件夾。
而在windows下需要使用dos命令,比如:
system("mkdir .\\XXX");
函數(shù)名:?_mkdir
功?能:?建立一個目錄
用?法:?int?_mkdir(?const?char?*dirname?);
頭文件庫:direct.h
返回值:創(chuàng)建一個目錄,若成功則返回0,否則返回-1
程序例:
#include?direct.h
#include?stdio.h
#include?stdlib.h//for?system()函數(shù)
int?main(void)?{
mkdir("D:\\myd");
system("dir?D:\\myd");
system("start?D:");
getchar();
_rmdir("D:\\myd");
return?0;
}
Linux c語言可以使用系統(tǒng)提供的mkdir函數(shù)來創(chuàng)建文件夾。
1、函數(shù)原型
int mkdir(const char *path, mode_t mode);
2、參數(shù)說明:
path是目錄名?
mode是目錄權(quán)限
3、需要頭文件
#include?sys/stat.h
4、示例
//添加mkdir函數(shù)聲明頭文件
#include?sys/stat.h
#include?sys/types.h
int?main()?//主函數(shù)
{
//直接調(diào)用mkdir函數(shù)
//建立一個名為zhidao的文件夾
//權(quán)限為0777,即擁有者權(quán)限為讀、寫、執(zhí)行
//擁有者所在組的權(quán)限為讀、寫、執(zhí)行
//其它用戶的權(quán)限為讀、寫、執(zhí)行
mkdir("zhidao",0777);
return?0;
}
說明:函數(shù)調(diào)用試圖建立777權(quán)限的文件夾,但是在實際程序執(zhí)行時,還需要考慮umask值,最終才會得到實際的權(quán)限。
5、執(zhí)行效果如下圖所示
說明:t.c是源碼文件,有g(shù)cc進(jìn)行編譯,-o是gcc的參數(shù),有于指明編譯后輸出的文件,t為源碼經(jīng)gcc編譯后生成的可執(zhí)行文件。./t是執(zhí)行當(dāng)前目錄下的生成的可執(zhí)行文件t。