ソフトウェア設計及び演習2017
入出力
入出力
バッファを用いた文字列の読みだし書き込み
ssize_t read(int ファイル識別子,char * バッファ, int 読みだし長)
ファイル識別子で指定する入力(装置)からバイト列を読み出す. 実際に読んだバイト数を返す.
ssize_t write(int ファイル識別子,char * バッファ, int 書き込み長)
ファイル識別子で指定する出力(装置)へバイト列を書き出す. 実際に書いたバイト数を返す.
サンプルプログラム
- 標準入力から80文字以下の文字列を読み込んで,
- 読み込んだ文字列を,標準出力へ出力し,標準エラーへも出力する
- 標準出力には、先頭に stdout> , 標準エラーには、先頭に stderr> を付ける.
# include <stdio.h> # include <fcntl.h> # include <string.h> # define SINPUT 0 # define SOUTPUT 1 # define SERROR 2 # define MaxMessageLength 80 int 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); }
コンパイルして,最初は「標準入力をキーボード」,「標準出力とエラー出力は端末画面」として動かしてみよう.
次は,標準入力と出力をファイルに(するようにプログラムを変更)してやってみよう.
最終更新日:2017/04/03 09:14:19