歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> linux常用c函數:文件內容操作篇(一)

linux常用c函數:文件內容操作篇(一)

日期:2017/2/25 10:38:52   编辑:Linux教程

  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

Copyright © Linux教程網 All Rights Reserved