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

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

日期:2017/2/25 10:38:52   编辑:Linux教程
 執行 1234 /*輸入*/

  1234 /*輸出*/

  gets(由標准輸入設備內讀進一字符串)

  相關函數 fopen,fread,fscanf,fgets

  表頭文件 #include<stdio.h>

  定義函數 char * gets(char *s);

  函數說明 gets()用來從標准設備讀入字符並存到參數s所指的內存空間,直到出現換行字符或讀到文件尾為止,最後加上NULL作為字符串結束。

  返回值 gets()若成功則返回s指針,返回NULL則表示有錯誤發生。

  附加說明 由於gets()無法知道字符串s的大小,必須遇到換行字符或文件尾才會結束輸入,因此容易造成緩沖溢出的安全性問題。建議使用fgets()取代。

  范例 參考fgets()

  mktemp(產生唯一的臨時文件名)

  相關函數 tmpfile

  表頭文件 #include<stdlib.h>

  定義函數 char * mktemp(char * template);

  函數說明 mktemp()用來產生唯一的臨時文件名。參數template所指的文件名稱字符串中最後六個字符必須是XXXXXX。產生後的文件名會借字符串指針返回。

  返回值 文件順利打開後,指向該流的文件指針就會被返回。如果文件打開失敗則返回NULL,並把錯誤代碼存在errno中。

  附加說明 參數template所指的文件名稱字符串必須聲明為數組,如:

  char template[ ]=”template-XXXXXX”;

  不可用char * template=”template-XXXXXX”;

  范例 #include<stdlib.h>

  main()

  {

  char template[ ]=”template-XXXXXX”;

  mktemp(template);

  printf(“template=%s\n”,template);

  }

  putc(將一指定字符寫入文件中)

  相關函數 fopen,fwrite,fscanf,fputc

  表頭文件 #include<stdio.h>

  定義函數 int putc(int c,FILE * stream);

  函數說明 putc()會將參數c轉為unsigned char後寫入參數stream指定的文件中。雖然putc()與fputc()作用相同,但putc()為宏定義,非真正的函數調用。

  返回值 putc()會返回寫入成功的字符,即參數c。若返回EOF則代表寫入失敗。

  范例 參考fputc()。

  putchar(將指定的字符寫到標准輸出設備)

  相關函數 fopen,fwrite,fscanf,fputc

  表頭文件 #include<stdio.h>

  定義函數 int putchar (int c);

  函數說明 putchar()用來將參數c字符寫到標准輸出設備。

  返回值 putchar()會返回輸出成功的字符,即參數c。若返回EOF則代表輸出失敗。

  附加說明 putchar()非真正函數,而是putc(c,stdout)宏定義。

  范例 參考getchar()。

  rewind(重設文件流的讀寫位置為文件開頭)

  相關函數 fseek,ftell,fgetpos,fsetpos

  表頭文件 #include<stdio.h>

  定義函數 void rewind(FILE * stream);

  函數說明 rewind()用來把文件流的讀寫位置移至文件開頭。參數stream為已打開的文件指針。此函數相當於調用fseek(stream,0,SEEK_SET)。

  返回值

  范例 參考fseek()

  setbuf(設置文件流的緩沖區)

  相關函數 setbuffer,setlinebuf,setvbuf

  表頭文件 #include<stdio.h>

  定義函數 void setbuf(FILE * stream,char * buf);

  函數說明 在打開文件流後,讀取內容之前,調用setbuf()可以用來設置文件流的緩沖區。參數stream為指定的文件流,參數buf指向自定的緩沖區起始地址。如果參數buf為NULL指針,則為無緩沖IO。Setbuf()相當於調用:setvbuf(stream,buf,buf?_IOFBF:_IONBF,BUFSIZ)

  返回值

  setbuffer(設置文件流的緩沖區)

  相關函數 setlinebuf,setbuf,setvbuf

  表頭文件 #include<stdio.h>

  定義函數 void setbuffer(FILE * stream,char * buf,size_t size);

  函數說明 在打開文件流後,讀取內容之前,調用setbuffer()可用來設置文件流的緩沖區。參數stream為指定的文件流,參數buf指向自定的緩沖區起始地址,參數size為緩沖區大小。

  返回值

  setlinebuf(設置文件流為線性緩沖區)

  相關函數 setbuffer,setbuf,setvbuf

  表頭文件 #include<stdio.h>

  定義函數 void setlinebuf(FILE * stream);

  函數說明 setlinebuf()用來設置文件流以換行為依據的無緩沖IO。相當於調用:setvbuf(stream,(char * )NULL,_IOLBF,0);請參考setvbuf()。

  返回值

  setvbuf(設置文件流的緩沖區)

  相關函數 setbuffer,setlinebuf,setbuf

  表頭文件 #include<stdio.h>

  定義函數 int setvbuf(FILE * stream,char * buf,int mode,size_t size);

  函數說明 在打開文件流後,讀取內容之前,調用setvbuf()可以用來設置文件流的緩沖區。參數stream為指定的文件流,參數buf指向自定的緩沖區起始地址,參數size為緩沖區大小,參數mode有下列幾種

  _IONBF 無緩沖IO

  _IOLBF 以換行為依據的無緩沖IO

  _IOFBF 完全無緩沖IO。如果參數buf為NULL指針,則為無緩沖IO。

  返回值

  ungetc(將指定字符寫回文件流中)

  相關函數 fputc,getchar,getc

  表頭文件 #include<stdio.h>

  定義函數 int ungetc(int c,FILE * stream);

  函數說明 ungetc()將參數c字符寫回參數stream所指定的文件流。這個寫回的字符會由下一個讀取文件流的函數取得。

  返回值 成功則返回c 字符,若有錯誤則返回EOF。

Copyright © Linux教程網 All Rights Reserved