!! 入出力 バッファを用いた文字列の読みだし書き込み 8< ssize_t read(int ファイル識別子,char * バッファ, int 読みだし長) >8 ファイル識別子で指定する入力(装置)からバイト列を読み出す. 実際に読んだバイト数を返す. 8< ssize_t write(int ファイル識別子,char * バッファ, int 書き込み長) >8 ファイル識別子で指定する出力(装置)へバイト列を書き出す. 実際に書いたバイト数を返す. !! サンプルプログラム * 標準入力から80文字以下の文字列を読み込んで, * 読み込んだ文字列を,標準出力へ出力し,標準エラーへも出力する * 標準出力には、先頭に stdout> , 標準エラーには、先頭に stderr> を付ける. 8< # include # include # include # define SINPUT 0 # define SOUTPUT 1 # define SERROR 2 # define MaxMessageLength 80 main() { char *Message, MessageBox[MaxMessageLength]; int Bytes; Message = MessageBox; Bytes = read(SINPUT, Message, MaxMessageLength); MessageBox[Bytes] = 0; write(SOUTPUT, "stdout>> " , 9); write(SOUTPUT, Message, strlen(Message)); write(SERROR, "stderr>> " , 9); write(SERROR, Message, strlen(Message)); exit(0); } >8 コンパイルして,最初は「標準入力をキーボード」,「標準出力とエラー出力は端末画面」として動かしてみよう. 次は,標準入力と出力をファイルに(するようにプログラムを変更)してやってみよう.