clearerr(清除文件流的錯誤旗標)
相關函數 feof
表頭文件 #include
定義函數 void clearerr(FILE * stream);
函數說明 clearerr()清除參數stream指定的文件流所使用的錯誤旗標。
返回值
fclose(關閉文件)
相關函數 close,fflush,fopen,setbuf
表頭文件 #include
定義函數 int fclose(FILE * stream);
函數說明 fclose()用來關閉先前fopen()打開的文件。此動作會讓緩沖區內的數據寫入文件中,並釋放系統所提供的文件資源。
返回值 若關文件動作成功則返回0,有錯誤發生時則返回EOF並把錯誤代碼存到errno。
錯誤代碼 EBADF表示參數stream非已打開的文件。
范例 請參考fopen()。
fdopen(將文件描述詞轉為文件指針)
相關函數 fopen,open,fclose
表頭文件 #include
定義函數 FILE * fdopen(int fildes,const char * mode);
函數說明 fdopen()會將參數fildes 的文件描述詞,轉換為對應的文件指針後返回。參數mode 字符串則代表著文件指針的流形態,此形態必須和原先文件描述詞讀寫模式相同。關於mode 字符串格式請參考fopen()。
返回值 轉換成功時返回指向該流的文件指針。失敗則返回NULL,並把錯誤代碼存在errno中。
范例 #include
main()
{
FILE * fp =fdopen(0,”w+”);
fprintf(fp,”%s\n”,”hello!”);
fclose(fp);
}
執行 hello!
feof(檢查文件流是否讀到了文件尾)
相關函數 fopen,fgetc,fgets,fread
表頭文件 #include
定義函數 int feof(FILE * stream);
函數說明 feof()用來偵測是否讀取到了文件尾,尾數stream為fopen()所返回之文件指針。如果已到文件尾則返回非零值,其他情況返回0。
返回值 返回非零值代表已到達文件尾。
fflush(更新緩沖區)
相關函數 write,fopen,fclose,setbuf
表頭文件 #include
定義函數 int fflush(FILE* stream);
函數說明 fflush()會強迫將緩沖區內的數據寫回參數stream指定的文件中。如果參數stream為NULL,fflush()會將所有打開的文件數據更新。
返回值 成功返回0,失敗返回EOF,錯誤代碼存於errno中。
錯誤代碼 EBADF 參數stream 指定的文件未被打開,或打開狀態為只讀。其它錯誤代碼參考write()。
fgetc(由文件中讀取一個字符)
相關函數 open,fread,fscanf,getc
表頭文件 include
定義函數 nt fgetc(FILE * stream);
函數說明 fgetc()從參數stream所指的文件中讀取一個字符。若讀到文件尾而無數據時便返回EOF。
返回值 getc()會返回讀取到的字符,若返回EOF則表示到了文件尾。
范例 #include
main()
{
FILE *fp;
int c;
fp=fopen(“exist”,”r”);
while((c=fgetc(fp))!=EOF)
printf(“%c”,c);
fclose(fp);
}
fgets(由文件中讀取一字符串)
相關函數 open,fread,fscanf,getc
表頭文件 include
定義函數 har * fgets(char * s,int size,FILE * stream);
函數說明 fgets()用來從參數stream所指的文件內讀入字符並存到參數s所指的內存空間,直到出現換行字符、讀到文件尾或是已讀了size-1個字符為止,最後會加上NULL作為字符串結束。
返回值 gets()若成功則返回s指針,返回NULL則表示有錯誤發生。
范例 #include
main()
{
char s[80];
fputs(fgets(s,80,stdin),stdout);
}
執行 this is a test /*輸入*/
this is a test /*輸出*/
fileno(返回文件流所使用的文件描述詞)
相關函數 open,fopen
表頭文件 #include
定義函數 int fileno(FILE * stream);
函數說明 fileno()用來取得參數stream指定的文件流所使用的文件描述詞。
返回值 返回文件描述詞。
范例 #include
main()
{
FILE * fp;
int fd;
fp=fopen(“/etc/passwd”,”r”);
fd=fileno(fp);
printf(“fd=%d\n”,fd);
fclose(fp);
}
執行 fd=3