Linuxを使っていると、パイプやリダイレクトでシェルスクリプトを組んだりしているのをよく見かけます。
自分も使っているのですが、いまいちパイプやリダイレクトの仕組みがわかっていないまま使っています。
① パイプって全部のプログラム(コマンド)で使えるんですか?
例えば、何気なくyum でインストールコマンドは、全てパイプに対応しているのでしょうか
② パイプの正体は標準出力 + 標準入力なのでしょうか?
これまで
% rpm -qa | grep -i packageName
とした時、rpm は結果をstdoutに出力、grepではstdinから文字を取得していると思っていました。
しかし、googleで「Linux C言語 パイプ」と検索したらば、pipe()関数というものがある事がわかりました。
そのサイトを見ていると、「パイプへ出力」「パイプからの入力」というコメントがありました。
ということは「パイプ != 標準出力 + 標準入力」ということでしょうか?
それとも、「パイプ == 標準出力 + 標準入力」なんだけど、実は標準入力/標準出力は文字以外も書き込めるというオチなのでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/09 22:49
2016/06/10 00:28
2016/06/10 04:00