標準IOライブラリ知識点百問「APUE」chapter-5

1589 ワード

1-標準IOライブラリで提供される3種類のbuffering:
  • Fully buffered(フルバッファ)
  • Line buffered(ラインバッファ)
  • unbuffered(バッファなし):典型的な標準エラーフロー
  • 2-ロー・バッファで発生する2つの問題:
  • 新しい行記号に出会う前にbuffer
  • を埋め尽くした
  • すべてのline-bufferedおよびunbuffered stream入力要求はflush line-bufferedの出力ストリーム
  • になる.
    3-3つの標準ストリームはどのbufferingを採用していますか.
  • 標準errorは常にunbuffered
  • 標準input/outputはterminal deviceのときline bufferedである.そうでなければfully buffered
  • です
    4-開いたストリームには、3つの非形式IO(unformated IO):
  • Character-at-a-time I/O . We can read or write one character at a time.
  • Line-at-a-time I/O. If we want to read or write a line at a time, we use fgets and fputs.
  • Direct I/O (binary I/O). This type of I/O is supported by the fread and fwrite functions. These two functions are often used for binary files where we read or write a structure with each operation.

  • 5-getcfgetcの違いは?注意点は?getcマクロfgetc関数1.getcのパラメータは必ず副作用のある式2ではない.fgetcのアドレスを用いる、関数ポインタとして他のfunction 3に伝達することができる.呼び出しfgetcが消費する時間はgetcより長い
    6-一般ファイルのバッファモード?
    デフォルトのフルバッファ
    7-テンポラリ・ファイルにはどのような呼び出しがありますか?
    tmpnam,tempnam tmpfile, mkstemp
    8-tmpname,tempnameの欠点?
    一意のpathnameを返すのと、このpathnameで一時ファイルを作成するのとの間に隙間があります.他のプロセスは、ギャップ内に同じpathnameでファイルを作成する可能性があります.これは深刻な結果をもたらす.