歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

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

 執行  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