Python java shell apache 开源 wordpress linux Windows Ubuntu nginx php 编程 Android 程序员 google mysql Firefox 微软 云计算 centos

标准输入,标准输出和标准错误

  Linux系統為每個進程定義了標準輸入,標準輸出和標準錯誤三個文件流,也稱作I/O數據流,系統預定義的3個文件流有固定的名稱,因此無須創建便可以直接使用,stdin是標準輸入,默認是從鍵盤讀取數據,stdout是標準輸出。默認向屏幕輸出數據,stder是標準錯誤,默認是像屏幕輸出數據。

  標準文件I/O庫提供了緩沖機制,目的是為了減少外部設備的讀寫次數,同時,使用緩沖也能提高應用程序的讀寫性能,標準文件I/O緩沖被填滿後才會吧緩沖內的數據重新寫入新的操作,券緩沖方式通常是在磁盤文件操作,只有當緩沖寫滿以後才會吧緩沖內的數據寫入磁盤文件。

  行緩沖,行緩沖顧名思義是以行為單位操作文件緩沖區,使用行緩沖方式,系統I/O函數在遇到換行符的時候會執行I/O操作。一般在操作終端時常使用行緩沖。

 不帶緩沖,標準I/O庫不緩存任何的字符。如果使用不帶緩沖的流,相當於直接把數據通過系統調用write寫入到設備上,如標準錯誤輸出stder就是不帶緩沖的。

 ANSI文件I/O庫在stdio。h頭文件中為用戶提供了如下兩個設置緩沖的函數接口。

其中,如果為流指定不帶緩沖,setbuf函數會忽略buf和size參數,從這裏可以看出,setbuf函數可以設置任意大小的緩沖,buf參數指定了緩沖在內存的起始地址,size參數制定了緩沖的字節大小。

延伸阅读

评论