Linux程式設計常用的函式(十) 標準I O

2021-04-14 22:26:01 字數 3174 閱讀 5685

(十)標準i/o

1.#include#include

int fwide(file *fp, int mode);//設定流定向(寬定向返回正/位元組定向返回負/未定向返回0)

mode引數值為負:試圖使指定的流是位元組定向的;正:寬定向;0不試圖設定流的定向

2.void setbuf(file *restrict fp, char *restrict buf);

int setvbuf(file *restrict fp, char *restrict buf, int mode, size_t size);// 返回(0/-1)

//更改緩衝型別(流被開啟後也應該在對該流未執行任何操作時呼叫)

mode 引數的選項:_iofbf (全緩衝)   _iolbf (行緩衝)_ionbf(不帶緩衝,將忽略buf和size)

3.int fflush(file *fp);//沖洗流,將流中的資料傳給核心,然後清空緩衝區。返回(0/eof)

4.file *fopen(const char *restrict pathname, const char *restrict type);//開啟指定的檔案

file *freopen(const char *restrict pathname, const char *restrict type, file* restrict fp)

//在乙個指定的流上開啟檔案,若流已開啟則先關閉流,若已定向則清除定向。

file *fdopen(int filedes, const char *type);

//獲取乙個現有的檔案描述符,並使乙個標準的i/o流與該描述符相結合。

//成功返回檔案指標,出錯返回null

5.int fclose(file *fp);//關閉乙個開啟的流,返回(0/eof)

6.int getc(file *fp);

int fgetc(file *fp);

int getchar(void); //讀取乙個字元;成功返回下乙個字元,若已到檔案結尾或出錯返回eof

7.int ferror(file *fp);

int feof(file *fp);//測試檔案是否出錯和到達結尾;為真返回非0,否則返回0

void clearerr(file *fp);//清除錯誤和結束標誌

8.int ungetc(int c, file *fp);//將字元壓回流中;成功返回c,出錯返回eof

9.int putc(int c, file *fp);

int fputc(int c, file *fp);

int putchar(int c);//輸出函式,成功返回c,出錯返回eof

10.char *fgets(char *restrict buf, int n, file *restrict fp);

char *gets(char *buf);//每次輸入一行;成功返回buf,出錯或檔案結尾則返回null

11.int fputs(const char *restrict str, file *restrict fp);

int puts(const char *str);//輸出一行的函式;成功返回非負值,出錯則返回eof

12.size_t fread(void *restrict ptr, size_t size,size_t nobj,file *restrict fp);

size_t fwrite(const void *restrict ptr, size_t size, size_t nobj, file *restrict fp);

//二進位制i/o操作,返回讀或寫的物件數(即nobj)

13.long ftell(file *fp);//返回當前的檔案位置指示;成功返回當前檔案位置指示,失敗-1l

int fseek(file *fp, long offset, int whence);//為開啟的檔案設定新的偏移量(0/非0)

void rewind(file *fp);//將乙個流設定到檔案的起始位置

14.off_t ftello(file *fp);//成功返回當前檔案的位置指示(與上就差返回型別),失敗返回-1

int fseeko(file *fp, off_t offset, int whence);//成功返回0,失敗返回非0

15.int fgetpos(file *restrict fp, fpos_t *restrict pos);

//將檔案位置指示器的當前值存入指向的物件中

int fsetpos(file *fp, const fpos_t *pos);//用pos的值將流重新定位到該位置;成功0失敗非0;

16.int printf(const char *restrict format,...);

int fprintf(file *restrict fp, const char *restrict format,…);//成功返回輸出字元數/負值

int sprintf(char *restrict buf, const char *restrict format,…);

int snprintf(char *restrict buf, size_t n, const char *restrict format,…);

//成功返回存入陣列的字元數,出錯則返回負值

17.scanf(const char *restrict format, …);

int fscanf(file *restrict fp, const char *restrict format,…);

int sscanf(const char *restrict buf, const char *restrict format, …);

//返回指定的輸入項數;若輸入出錯或在任意變換前已到達檔案結尾則返回eof

18.int fileno(file *fp);//獲取檔案描述符;返回該流相關聯的檔案描述符

19.char *tmpnam(char *ptr);//建立臨時檔案   //返回指向唯一路徑的指標

file *tmpfile(void); //若成功則返回檔案指標,若出錯則返回null

20.char *tempnam(const char *directory, const char *prefix);//指定目錄和字首建立臨時檔案

21.int mkstemp(char *template)//指定臨時檔案的名字建立;成功返回檔案描述符,出錯返回-1

Linux網路程式設計常用函式

計算機資料儲存有兩種位元組優先順序 高位位元組優先和低位位元組優先。internet上資料以高位位元組優先順 序在網路上傳輸,所以對於在內部是以低位位元組優先方式儲存資料的機器,在internet上傳輸資料時就需 要進行轉換。我們要討論的第乙個結構型別是 struct sockaddr,該型別是用來...

Linux 網路程式設計常用函式詳解

sendto 經socket傳送資料 相關函式 send sendmsg,recv recvfrom socket 表頭檔案 include sys types.h include sys socket.h 定義函式 int sendto int s const void msg,int len,u...

Linux系統程式設計(十)exec 族函式

exec函式族的作用是根據指定的檔名找到可執行檔案,並用它來取代呼叫程序的內容,換句話說,就是在呼叫程序內部執行乙個可執行檔案。exec函式族的函式執行成功後不會返回,因為呼叫程序的實體,包括 段,資料 段和堆疊等都已經被新的內容取代,只留下程序 id 等一些表面上的資訊仍保持原樣,頗有些神似 三十...