第5章 標準I O庫

2021-05-21 19:42:04 字數 639 閱讀 6197

當開啟乙個流時,標準i/o函式fopen返回乙個指向file物件的指標。該物件通常是乙個結構,它包含了標準i/o庫為管理該流所需要的所有資訊,包括:用於實現i/o的檔案描述符、指向用於該流緩衝區的指標、緩衝區的長度、當前在緩衝區中的字元數以及出錯標誌等等。應用程式沒有必要檢驗file物件。

對乙個程序預定義了三個流,並且這三個流可以自動地被程序使用,它們是:標準輸入,標準輸出,標準出錯,這三個標準i/o流通過預定義檔案指標stdin、stdout和stderr加以引用。

標準i/o庫提供緩衝的目的是盡可能減少使用read和write呼叫的次數,它也對每個i/o流自動地進行緩衝管理,從而避免了應用程式需要考慮這一點所帶來的麻煩。

標準i/o提供了三種型別的緩衝:

全緩衝。這種情況下,在填滿標準i/o緩衝區後才進行實際i/o操作。對於駐留在磁碟上的檔案通常是由標準i/o庫實施全緩衝的。在乙個流執行第一次i/o操作時,相關標準i/o函式通常呼叫malloc獲得需使用的緩衝區。

行緩衝。這種情況下,當在輸入和輸出中遇到換行符時,標準i/o庫執行i/o操作。當流涉及乙個終端時(例如標準輸入和標準輸出),通常使用的是行緩衝。

不帶緩衝。標準i/o庫不對字元進行緩衝儲存。標準出錯流stderr通常是不帶緩衝的,這就使得出錯資訊可以盡快的顯示出來,而不管它們是否含有乙個換行符。

第5章 標準I O庫

流的定向決定了所讀 寫的字元是單位元組還是多位元組的。如ascii字符集是單位元組的,國際字符集是多位元組的 include includeint fwide file fp,int mode 寬定向返回正值,位元組定向返回負值,未定向返回0fwide並不改變已定向的流方向 三個標準i o流通過預定...

第5章標準I O庫總結

1 fwide函式試圖設定流的定向 流的定向決定了讀寫單位元組還是多位元組字元 int fwide file fp,int mode 寬定向返回正值,位元組定向返回負值,為定向返回0已定向流不會改變流的定向 2 setbuf函式中指定的緩衝區的長度為bufsiz,這個常量在stdio.h中定義 3 ...

第8章 標準IO庫

iostream繼承層次 istream和ostream是最上層,istream派生出ifstream和istringstream,ostream派生出ofstream和ostringstream。他們兩者共同派生出iostream。iostream派生出stringstream和fstream。標...