基本情報

基本情報 平成28年度 春期 問18|テクノロジ系に関する問題

問題

基本情報 | 平成28年度 春期 | 分野:テクノロジ系

UNIXにおいて,あるコマンドの標準出力を,直接別のコマンドの標準入力につなげる機能はどれか。

キーボード:1〜4で選択・Enterで次へ

タップするとすぐ答え合わせ

答え合わせ

正解は A
  • A
  • B
  • C
  • D

自信の3択

えらぶと、この端末に記録します(登録はいりません)

解説

答えは a「パイプ」 です。

UNIXのパイプは「コマンドAの結果をそのままコマンドBへ流し込む」機能。記号は |(縦棒)。

たとえば `ls | grep txt` なら、`ls`(ファイル一覧)の結果を `grep txt`(txtを含む行を抽出)に直結します。

👉 覚え方:パイプ=出力をホースで次のコマンドに流す。

ほかの選択肢:b バックグラウンドジョブ(&)=コマンドを裏で実行/c ブレース展開({ })=文字列の組合せを作る/d リダイレクト(> や <)=出力や入力をファイルにつなぐ。

なぜこれが正解か

UNIX系シェルにおけるパイプ(pipe)は、`コマンドA | コマンドB`形式でコマンドAの標準出力をコマンドBの標準入力へ直接接続する機能。中間ファイルを介さず効率的なデータフロー処理を実現する。設問の「標準出力を別のコマンドの標準入力につなげる」はパイプの定義そのもの。

各選択肢の解説

  • a パイプ(|):正解。プロセス間通信の基本機能。
  • b バックグラウンドジョブ(&):プロセスを背景で実行する。データの受け渡しとは別概念。
  • c ブレース展開({a,b,c}):シェルでの文字列パターン生成。例:`echo file{1,2,3}.txt`
  • d リダイレクト(>, <, >>):標準入出力をファイルへ向ける/ファイルから読む。コマンド同士の直結ではない。

覚え方・ひっかけ注意

シェル機能の識別:

  • パイプ(|):標準出力→標準入力直結
  • リダイレクト(>, <, >>, 2>&1):ファイル⇔標準入出力
  • コマンド置換($(cmd), ``):コマンド出力を文字列として埋め込み
  • ブレース展開({}):パターン文字列生成
  • **グロブ(, ?)*:ファイル名パターンマッチング
  • ジョブ制御(&, fg, bg):プロセス背景化

試験では「標準出力を別コマンドへ」「直結」がパイプの合図。

理論的背景

UNIXパイプはDouglas McIlroyが1972年にUNIX V3で実装したプロセス間通信(IPC: Inter-Process Communication)の代表機構。「Make each program do one thing well」「Write programs to handle text streams」というUNIX哲学を体現。カーネル内部ではカーネルバッファ(典型64KB)経由でリングバッファ的に動作し、書込側がいっぱいになるとブロック、読込側が空ならブロックする生産者-消費者モデル。

実務での使われ方

パイプ系IPCの種類:

  • 無名パイプ(anonymous pipe, |):親子プロセス間限定
  • 名前付きパイプ(FIFO, mkfifo):無関係プロセス間でも使用可
  • 双方向パイプ(socketpair):Bidirectional
  • 共有メモリ(shm):高速、明示的同期必要
  • メッセージキュー(msg queue):構造化メッセージ
  • ソケット(Unix domain socket):ローカル高性能IPC

パイプライン処理の発展:

  • シェルワンライナー:`ls -la | awk '{print $5}' | sort -n | tail -10`
  • データパイプライン:Apache Beam・Apache Flink・Kafka Streams
  • 関数型合成:Haskellのモナド、Elixirのpipe operator(|>)

試験での位置づけ

OS・シェル分野の頻出テーマ。基本情報ではパイプ・リダイレクトの基本識別、応用情報・組込みシステムスペシャリストではIPC種類比較・プロセス制御・シェルスクリプティング・正規表現まで踏み込む。Linuxシステムコール(pipe(), fork(), dup2(), exec*())の理解も実務必須。

選択肢の発展補足

リダイレクト演算子の詳細:

  • >: 標準出力をファイルに上書き
  • >>: 標準出力をファイルに追記
  • <: ファイルから標準入力
  • 2>: 標準エラー出力リダイレクト
  • 2>&1: 標準エラーを標準出力にマージ
  • &>: 標準出力・エラー両方をファイルへ(bash)
  • <<: ヒアドキュメント(インライン入力)
  • <<<: ヒアストリング(文字列を標準入力)

WindowsのPowerShellではオブジェクトパイプラインで構造化データを流す(テキスト中心のUNIXとは異なる設計)。Process Substitution(<(cmd))でコマンド出力をファイルとして扱う高度技法もある。コンテナ環境ではSidecarパターンでパイプライン的にログ収集・ヘルスチェック・プロキシを構成する設計が普及。試験対策はパイプ・リダイレクトの基本+シェルスクリプティングの理解で応用情報・組込みシステムスペシャリスト等の上位資格に対応可能。

この問題の根拠出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成28年度 春期 問18
訂正の記録この問題の訂正はありません(サイト全体の記録)
出典と作り方

出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成28年度 春期 問18/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビ独自の3段階の解説(初級・標準・上級)です。