小さなツールの作成:1つのことだけをうまくやる
Keywords
コマンドラインオプション
情報ストリーム
リダイレクト
ToC
小さなツールは大きな問題を解決できる
プログラムが行うべき動作
でも、ファイルを使っていない
再コンパイルさえしなくてもファイル入力・ファイル出力を実現できる
デフォルトの標準入力と標準出力は、プログラムの実行時にOSが作成している
標準エラーとは
デフォルトでは、標準エラーは画面に送られる
fprintf()はデータストリームへ出力する
fprintf()を使ってコードを書き換えよう
小さなツールは柔軟性がある
geo2jsonツールを変更しない
異なるタスクには異なるツールが必要
bermudaツール
(./bermuda | ./geo2json) < spooky.csv 1> output.json 2> error
でも、複数のファイルに出力したい場合はどうなるの?
独自のデータストリームを使う
fopen()
終わったらfclose()を呼ぶ
OSによるが、通常1つのプロセスでデータストリームを256個しか持てないため、使い終わったらクローズするべき
main()には別の使い方がある
コマンドライン引数を渡せるようにするという使い方
int main(int argc, char *argv[])という形式のmain関数を用いる
ライブラリに仕事をしてもらう
getopt()でコマンドライン引数を便利に定義できる
Cツールボックス