1.流的定向:決定了所讀的,寫的字符是單字節仍是多字節,當一個流最初被建立的時候,並無進行流的重定向,流的重定向取決於第一次的操做,在流上使用一個單字節的I/O函數,則流被設置爲字節定向,若寬字節則被設置位多字節函數
2:緩衝,在行緩衝中,若是有讀一個不帶緩衝的流或者一個行緩衝的流,則要進行沖洗輸出緩衝區spa
setvbuf能夠設置緩衝方式,全緩衝,行緩衝,沒有緩衝orm
3:打開流,blog
對於fdopen,type參數的意義則稍有區別。由於該描述符已被打開,因此fdopen寫而打開並不截短該文件。 (若get
該描述符原來是由open函數打開的,該文件那時已經存在,則其O_TRUNC標誌將決定是否截短該文件。fdopenit
函數不能截短它爲寫而打開的任一文件。)另外,標準 I / O添加方式也不能用於建立該文件(由於如若一個描述符終端
引用一個文件,則該文件必定已經存在)。引用
流在打開的時候默認的是全緩衝,若引用的是終端設備,則是行緩衝的im
!!!數據
當以讀和寫類型打開一文件時( t y p e中+號),具備下列限制:
• 若是中間沒有ff l u s h、f s e e k、f s e t p o s或r e w i n d,則在輸出的後面不能直接跟隨輸入。
• 若是中間沒有 f s e e k、f s e t p o s或r e w i n d ,或者一個輸出操做沒有到達文件尾端,則在輸入操
做以後不能直接跟隨輸出。
4讀和寫流
在讀和寫流的時候,其實流的緩衝都已經安排好了,在讀行的時候好比,fgets(buf,n,fp)buf指的是此函數指
定的讀某個流的數據,並將數據存放在某一個地方,這個緩衝區並非流的緩衝區
讀和寫流有單個字符,每次一行,每次一個結構
在讀和寫單個字節的時候,能夠將讀出來的字符,在送回流中,ungetc(int c, FILE *fp)
好比說流中有,cab,先讀出c,在送回c,則流變成cab~~若先讀出c,在送回d,則爲dab
5臨時文件