バッファを使用しないI/Oでは、データはバッファリングされずに、すぐに出力・ファイル送信が行われます。
読み取りや書き込みなどのシステムコールの頻度を少なくするためには、バッファを使用するI/Oを用いるようにします。
大量のバイナリデータを読み取り・書き込みを行う場合、デバイスやファイルを直接操作などの場合に、バッファを使用しないI/Oを用います。
バッファを使用しないファイルオープン・open
バッファを使用しないファイルをオープンするには、システムコールopenを使います。
int ファイルディスクリプタ = open(名前, フラグ); // 既存ファイル int ファイルディスクリプタ = open(名前, フラグ, モード); // 新規ファイル
・ファイルディスクリプタ
ファイルオープンした後、ファイルを識別するための整数。
0よりも小さい場合は、エラー発生を示す。
・名前
ファイル名
・フラグ
オープンフラグの設定
・モード
ファイルのプロテクションモード。通常は0644。
// 読み取り専用でオープン
data = open("data.txt", O_RDONLY);
// 書き込み専用でファイル作成
out = open("output.dat", O_CREATE|O_WRONLY, 0666);
■この記事のトラックバックURL:
http://www.mapee.jp/mpe334/mt-tb.cgi/262