說明:如果您有任何疑問或想咨詢其他業(yè)務(wù)請(qǐng)撥打電話 400 685 0732
全網(wǎng)監(jiān)測(cè)海量數(shù)據(jù)按需發(fā)布監(jiān)測(cè)預(yù)警
實(shí)時(shí)把握輿情動(dòng)態(tài)精準(zhǔn)追溯信息源頭
在使用相關(guān)函數(shù)時(shí),我們經(jīng)??匆姷木褪且恍┣蠛突蛘呤蔷哂泻Y選性的一些函數(shù),這有一些函數(shù)雖然我們不常見,但是如果能好好的學(xué)習(xí),有時(shí)還會(huì)為我們解決不少的數(shù)據(jù)統(tǒng)計(jì)問題,其中就包括fopen函數(shù),那么fopen函數(shù)是什么函數(shù)?具體如何使用呢?接下來我們就一起來好好的了解一下吧。
fopen函數(shù)——函數(shù)簡(jiǎn)介
函數(shù)原型:FILE*fopen(constchar*path,constchar*mode);
返回值:文件順利打開后,指向該流的文件指針就會(huì)被返回。如果文件打開失敗則返回NULL,并把錯(cuò)誤代碼存在error中。
一般而言,打開文件后會(huì)做一些文件讀取或?qū)懭氲膭?dòng)作,若打開文件失敗,接下來的讀寫動(dòng)作也無法順利進(jìn)行,所以一般在fopen()后作錯(cuò)誤判斷及處理。
參數(shù)說明:
參數(shù)path字符串包含欲打開的文件路徑及文件名,參數(shù)mode字符串則代表著流形態(tài)。
mode有下列幾種形態(tài)字符串:
以x結(jié)尾的模式為獨(dú)占模式,文件已存在或者無法創(chuàng)建(一般是路徑不正確)都會(huì)導(dǎo)致fopen失敗。文件以操作系統(tǒng)支持的獨(dú)占模式打開。
上述的形態(tài)字符串都可以再加一個(gè)b字符,如rb、w+b或ab+等組合,加入b字符用來告訴函數(shù)庫(kù)以二進(jìn)制模式打開文件。如果不加b,表示默認(rèn)加了t,即rt、wt,其中t表示以文本模式打開文件。由fopen()所建立的新文件會(huì)具有S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666)權(quán)限,此文件權(quán)限也會(huì)參考umask值。
有些C編譯系統(tǒng)可能不完全提供所有這些功能,有的C版本不用”r+”、”w+”、”a+”,而用”rw”、”wr”、”ar”等,讀者注意所用系統(tǒng)的規(guī)定。
fopen函數(shù)使用案例
fopen(“…”,”…”)
第一個(gè)參數(shù)是指向一個(gè)文件,如果當(dāng)前文件不存在,系統(tǒng)會(huì)創(chuàng)建這個(gè)文件名。第二個(gè)參數(shù)是對(duì)這個(gè)文件進(jìn)行的操作。例如,只讀,讀寫,寫等。
請(qǐng)參看下面的程序,了解其具體用法。下面程序?qū)崿F(xiàn)的是在zhubihui.txt中寫入創(chuàng)建子程序的結(jié)果。
#include
#include
#include
main()
{
intp1,p2,i;
FILE*fp;
fp=fopen(“zhubihui.txt”,”w+”);
if(fp==NULL)
{printf(“Failtocreatefile”);
exit(-1);
}
while((p1=fork())==-1);
if(p1==0)
{lockf((int)fp,1,0);
for(i=0;i<10;i++)
fprintf(fp,”daughter%d\n”,i);
lockf((int)fp,0,0);
}
else
{while((p2=fork())==-1);
if(p2==0)
{lockf((int)fp,1,0);
for(i=0;i<10;i++)
fprintf(fp,”son%d\n”,i);
lockf((int)fp,0,0);
}
else
{
wait(NULL);
lockf((int)fp,1,0);
for(i=0;i<10;i++)
fprintf(fp,”parent%d\n”,i);
lockf((int)fp,0,0);
}
}
fclose(fp);
}
以上就是有關(guān)fopen函數(shù)是什么以及如何使用的所有內(nèi)容,當(dāng)然在文軍營(yíng)銷官網(wǎng)當(dāng)中還有更多函數(shù)的使用方法和技巧,如果大家還想了解更多的話,歡迎大家關(guān)注文軍營(yíng)銷的官網(wǎng)。
推薦閱讀
說明:如果您有任何疑問或想咨詢其他業(yè)務(wù)請(qǐng)撥打電話 400 685 0732