Linuxシステムのプログラミングガイド - 第IV章、汎用IOモデル

1.ユニバーサルIOモデルがどのオブジェクトに使用されていますか?

  通常のファイル、パイプ、FIFO、端末、機器、ソケット

2.なぜ、すべての標準的なファイルオープンの文字を処理開始をしましたか?

  プログラムが起動し、プログラムのためのシェルのオープン標準のファイル識別子の前に、他の言葉で、プログラムはシェルのオープン・ファイル記述子を継承します。

  リダイレクトした場合、シェルの標準的なファイルディスクリプタを調整し、その後、フォークのプログラムとなります。

3.標準のファイルディスクリプタとは何ですか?

  0 STDIN_FILENO STDIN

  1 STDOUT_FILENOの標準出力

  2 STDERR_FILENOの標準エラー出力

4.なぜそれがユニバーサルIOと呼ばれていますか?

  一般的なファイル、FIFO、パイプライン、端子、ソケット、デバイスを:すなわち、共通のIO APIプログラムを使用しては、以下を含む、一連のファイルを使用することができます。

  一般的な前提ファイルIOを使用することができるようにするには、同じコールセットを達成するために、IOシステムです。

  あなたは特別な機能のファイル利用可能のioctlを使用する必要がある場合。

オープンに注意を払う必要のある事項5.?
  それがシンボリックリンクの場合、間接参照されます、pathname引数を開きます。

  O_CLOEXEC内のフラグは、で、自動的に閉じるファイルディスクリプタをexecを実行します。

6.注意を払うにどのようなニーズを読むには?

  ファイルの終わりを示す、戻り0を読み出します。

  一般的に、我々は書きます

チャー BUF [MAX_READ + 1 ]。
nバイト = リード(FD、BUF、MAX_READ)。
BUF [nバイト] = 0 ;

  ストリングのリード端部が設けられていないので、追加のバイトを定義する必要があります。

返された値の7.write場合は、値未満を記述する必要があります、どのようにこれが起こっていますか?

  操作は、ディスク・ファイルの場合は、ディスクがいっぱいであることを示します。

注意を払うには何8.lseek必要?

  lseekオフセットは負でもよいです。

  lseekは、パイプライン、FIFO、ターミナル、ソケットには適用されません(これらの特性が読み出され、データがなくなっています)

  lはオフセットとして意味長いのlseekが長い表します。

9.空のファイル

  Linuxの空のファイル(なぜ、サンダーはまだディスクを占有し、ファイルが空で、ファイルをダウンロードしている)ではないウィンドウの上に、ユニークです。

  ファイルは、ファイルサイズが空になっています>ディスクブロックを占めます。

  唯一の書き込みデータは、唯一の空のように、ディスク・スペース、空のセクションを割り当て、スペースを割り当てません。

  データの1バイトのみが書かれている場合は、ディスクの割り当てはブロック単位に基づいており、ディスク・ブロックは、ディスクブロックを割り当てます場合。

10.ioctl有用性?

  ファイルの特別な機能を使用してください。

おすすめ

転載: www.cnblogs.com/yangxinrui/p/12188429.html
おすすめ