平成28年度 秋期18テクノロジ系

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

UN において, あるコマンドの標準出力を, 直接別のコマンドの標準入力につな げる機能はどれか。 ンク イー パックグラウンドジョア

  • aオブジェクトコードを生成する代わりに, インタプリタ用の中間コードを生成 する。正答
  • bコンパイルを実施するコンピュータとは異なるアーキテクチャをもったコンピ ュータで動作するオプジェクトコードを生成する。 ウ ソースコードを解析して, 実行時の処理効率を高めたオプジェクトコードを生 成する。
  • cブレース展開 エ リダイレクト ー| 問19 コンパイラにおける最適化の説明として, 適切がものはどれか。
  • dプログラムの実行時に, 呼び出されたサブプログラム名やある時点での変数の 内容を表示するようなオブジェクトコードを生成する。
正答:Aオブジェクトコードを生成する代わりに, インタプリタ用の中間コードを生成 する。

AI解説(初心者・標準・上級)

理解度に合わせて3レベルの解説を無料で読めます。

初心者向けまずはここから。やさしく要点を解説

答えは a(パイプ) に相当します。

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

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

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

本問は文字化けでラベルが乱れていますが、「標準出力→標準入力直結」=パイプが定義。リダイレクト(>)はファイルに出力する別機能、バックグラウンド(&)は非同期実行、ブレース展開({})は文字列生成。

標準試験対策の基準レベル

なぜこれが正解か

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

各選択肢の解説

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

覚え方・ひっかけ注意

シェル機能の識別:

  • パイプ(|):標準出力→標準入力直結
  • リダイレクト(>, <, >>, 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/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。

テクノロジ系の他の過去問

1
テクノロジ系
2
テクノロジ系
3
テクノロジ系
4
テクノロジ系
5
テクノロジ系

あなたの弱点を診断して、合格までの最短ルートを

この分野を連続演習し、AIがあなたの弱点を分析。合格ナビなら基本情報の過去問を解きながら学べます。