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