[Linux學習筆記]標準輸入輸出

來源:互聯網
上載者:User

(一)關於流和快取作業的函數:在標頭檔<stdio.h>中定義了三個預定義指標,分別是stdin、stdout、和stderr,它們分別代表進程的標準輸入、標準輸出和標準出錯流。

         緩衝有三種方式:全緩衝、行緩衝和不帶緩衝。UNIX的預設緩衝類別:標準錯誤無緩衝,終端裝置流為行緩衝,其他為全緩衝。

1.開啟操作

(1)fopen、freopen和fdopen函數

作用:開啟一個標準I/O流。freopen函數主要用於將一個指定的檔案開啟為一個預定義的流:stdin、stdout和stderr。fdopen函數常用於由建立管道和網路通訊通道函數獲得的描述符。

格式:

#include <stdio.h>FILE *fopen(const char *file, const char *type);FILE *freopen(const char *file, constchar *type, FILE *fp);FILE *fdopen(int filedes, const char *type);

傳回值:成功則返迴文件指標,失敗返回NULL。
(2)fclose函數:用於關閉一個流。

格式:

#include <stdio.h>int fclose(FILE *fp);

傳回值:成功為0,失敗為EOF為檔案結束符標誌。

2.讀操作

3種度操作:每次讀寫一個字元的I/O、每次讀寫一行I/O(使用fgets和fputs函數)和直接I/O(使用fread和fwrite函數)

(1)getc、fgetc和getchat函數

作用:用於一次讀取一個字元

格式:

#include <stdio.h>int getc(FILE *fp);int fgetc(FILE *fp);int getchar(void);

(2)ferror、feof和clearerr函數

作用:用於流的錯誤處理,為了區分溢出或者是出錯

格式:

#include <stdio.h>int ferrpr(FILE *fp);int feof(FILE *fp);void clesrerr(FILE *fp);

(3)ungetc函數:用於從一個流讀出的字元再送迴流中。

格式:

#include <stdio.h>int ungetc(int c, FILE *fp);

3.寫操作

putc、fputc和putchar函數

作用:對應於上面的輸入函數

格式:

#include <stdio.h>int putc(int c, FILE *fp);int fputc(int c, FILE *fp);int putchar(int c);

(二)I/O類型

1.一行操作I/O

(1)gets和fgets函數

作用:給指定的緩衝區每次輸入一行

格式:

#include <stdio.h>char *fgets(char *buf, int n, FILE *fp);char *gets(char *buf);

(2)fputs和puts函數

作用:每次輸出一行到指定的流

格式:

#include <stdio.h>int fput(const cahr *string, FILE *fp);int put(const char *string);

2.二進位I/O

fread和fwrite

這是對整個結構的一次讀寫

格式:

#include <stdio.h>size_t fread(void *ptr, size_t size, size_t nobj,FILE *fp);size_t fwrite(const void *ptr, size_t size, size_t nobj,FILE *fp);

3.緩衝區I/O

read和write函數

[格式參見此文章]

4.格式化I/O

scanf和printf函數

[不做介紹]

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.