Closed5

CSAPP 10章 システム・レベルI/O

bayamasabayamasa

UNIX I/Oの種類

  1. ファイルのオープン
  2. ファイル・ポジションの変更
  3. ファイルの読み書き
  4. ファイルのクローズ

ファイルポジションの変更
次の書き込み場所/読み込み場所を管理するためにファイルはお気セットを持つことができる。
lseekコマンド

bayamasabayamasa

Read関数について

ssize_t read(int fd, void *buf, size_t n)
戻り値: 成功なら読み込まれたバイト数, n==0かEOFなら0, エラーなら-1

もしサイズが20のfdがあったとして、第三引数のnが50だったときにread()を2回呼び出すとすると、
一回目に20(ファイルの上限バイト数)を返し、次に0(EOF)を返す。

bayamasabayamasa

リダイレクト処理
ls > foo.txt
上記のようなリダイレクト処理はdup2関数で実装されている。

dup2(int oldfd, int newfd);

oldfdの向き先をnewfdに変更する

このスクラップは2022/05/04にクローズされました