国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 操作系統 > 正文

標準I/O庫之流和FILE對象

2024-06-28 13:28:44
字體:
來源:轉載
供稿:網友
標準I/O庫之流和FILE對象

對于標準I/O庫,它們的操作是圍繞流(stream)進行的。當用標準I/O庫打開或創建一個文件時,我們已使一個流與一個文件相關聯。

對于ASCII字符集,一個字符用一個字節表示。對于國際字符集,一個字符可以用多個字節表示。標準I/O文件流可用于單字節或多字節(“寬”)字符集。流的定向(stream’s orientation)決定了所讀、寫的字符是單字節還是多字節。當一個流最初被創建時,它并沒有定向。如若在未定向的流上使用一個多字節I/O函數(見<wchar.h>),則將該流的定向設置為寬定向的。若在未定向的流上使用一個單字節I/O函數,則將該流的定向設置為字節定向的。只有兩個函數可以改變流的定向。freopen函數清除一個流的定向;fwide函數設置流的定向。

#include <stdio.h>#include <wchar.h>int fwide( FILE *fp, int mode );返回值:若流是寬定向的則返回正值,若流是字節定向的則返回負值,若流是未定向的則返回0

根據mode參數的不同值,fwide函數執行不同的工作:

  • 如若mode參數值為負,fwide將試圖使指定的流是字節定向的。
  • 如若mode參數值為正,fwide將試圖使指定的流是寬定向的。
  • 如若mode參數值為0,fwide將不試圖設置流的定向,但返回標識該流定向的值。

注意,fwide并不改變已定向流的定向。還應注意的是,fwide無出錯返回。試想如若流是無效的,那么將發生什么呢?我們唯一可依靠的是,在調用fwide前先清除errno,從fwide返回時檢查errno的值。

當打開一個流時,標準I/O函數fopen返回一個指向FILE對象的指針。該對象通常是一個結構,它包含了標準I/O庫為管理該流所需要的所有信息,包括:用于實際I/O的文件描述符、指向用于該流緩沖區的指針、緩沖區的長度、當前在緩沖區中的字符數以及出錯標志等等。

應用程序沒有必要檢驗FILE對象。為了引用一個流,需要將FILE指針作為參數傳遞給每個標準I/O函數。通常,我們稱指向FILE對象的指針(類型為FILE *)為文件指針。

本篇博文內容摘自《UNIX環境高級編程》(第二版),僅作個人學習記錄所用。關于本書可參考:http://www.apuebook.com/


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 清涧县| 柳州市| 和田市| 福州市| 常德市| 长丰县| 丰原市| 仁寿县| 华蓥市| 祁阳县| 苏尼特右旗| 浦城县| 宝丰县| 文山县| 江源县| 哈尔滨市| 瓦房店市| 炉霍县| 镇宁| 印江| 台湾省| 桓台县| 保靖县| 兴安县| 马鞍山市| 阜平县| 普格县| 郎溪县| 曲麻莱县| 黄龙县| 淮阳县| 临汾市| 濮阳县| 旺苍县| 福贡县| 谢通门县| 渝中区| 湘西| 潼关县| 汶上县| 岳池县|