Skip to Content
LINUX系統程式設計 第二版
book

LINUX系統程式設計 第二版

by Robert Love
December 2013
Intermediate to advanced
496 pages
8h 57m
Chinese
GoTop Information, Inc.
Content preview from LINUX系統程式設計 第二版
90
|
第三章
fflush()
僅會把用戶緩衝式資料寫出至核心緩衝區。如果不使用「用戶緩衝機制」而直
接使用
write()
,效果是一樣的。這並不保證資料會被實際提交給任何儲存媒體—對於
這種需求可以使用
fsync()
之類的系統呼叫(見第 2 章〈同步 I/O〉一節)。如果你關
心的是,確保你的資料能夠提交給背後的儲存媒體,你將會想要在呼叫
fflush()
之後
緊接著呼叫
fsync()
:也就是,先將用戶緩衝區寫出至核心,再將核心的緩衝區寫出至
磁碟。
錯誤與 EOF
有些標準 I/O 介面,例如
fread()
,無法有效地把執行失敗的情況傳達給呼叫者,因為
它們沒有提供任何機制用於區分錯誤與 EOF。對於這些呼叫,以及其他場合,這可用
於檢查特定串流的狀態,以確定它是遇到了一個錯誤,還是抵達了檔案末端。為此,
標準 I/O 程式庫提供了兩個介面。函式
ferror()
用於測試
stream
之上是否設定了錯誤
指示器:
#include <stdio.h>
int ferror (FILE *stream);
錯誤指示器由其他的標準 I/O 介面所設定,用於反應一個錯誤狀態。如果有設定指示
器,則此函式會傳回一個非零值,否則會傳回
0
函式
feof()
用於測試
stream
之上是否設定了
EOF
指示器:
#include <stdio.h>
int feof (FILE *stream);
EOF
指示器由其他的標準 I/O 介面所設定,用於反應抵達了檔案的末端。如果有設定指
示器,則此函式會傳回一個非零值,否則會傳回
0
函式 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

優雅的SciPy|Python科學研究的美學

優雅的SciPy|Python科學研究的美學

Juan Nunez-Iglesias, Stéfan van der Walt, Harriet Dashnow
C++语言导学(原书第2版)

C++语言导学(原书第2版)

本贾尼 斯特劳斯特鲁普

Publisher Resources

ISBN: 9789862769812