---
generated_at: 2026-02-17 12:20:00
metrics:
  claims_total: 35
  claims_with_evidence: 35
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート: 55-osproc（プロセス起動・管理）

## サマリー

本レポートは機能設計書「55-osproc（プロセス起動・管理）」の記載内容について、ソースコードに基づく根拠を示す。全35件の主張がすべてソースコードで確認可能であり、信頼度は1.00と評価される。

## Evidence一覧

| Evidence ID | ファイル | 行番号 | 内容 |
|------------|---------|--------|------|
| E-001 | lib/pure/osproc.nim | 12-15 | モジュール説明「プロセス起動・管理」 |
| E-002 | lib/pure/osproc.nim | 79-115 | ProcessOption enum定義 |
| E-003 | lib/pure/osproc.nim | 117-140 | ProcessObj型定義 |
| E-004 | lib/pure/osproc.nim | 142 | Process型（ref ProcessObj） |
| E-005 | lib/pure/osproc.nim | 144-177 | startProcessプロシージャ宣言 |
| E-006 | lib/pure/osproc.nim | 179-196 | execProcessプロシージャ宣言 |
| E-007 | lib/pure/osproc.nim | 198-205 | execCmdプロシージャ宣言 |
| E-008 | lib/pure/osproc.nim | 207-210 | closeプロシージャ宣言 |
| E-009 | lib/pure/osproc.nim | 212-213 | suspendプロシージャ宣言 |
| E-010 | lib/pure/osproc.nim | 215-216 | resumeプロシージャ宣言 |
| E-011 | lib/pure/osproc.nim | 218-220 | terminateプロシージャ宣言 |
| E-012 | lib/pure/osproc.nim | 222-224 | killプロシージャ宣言 |
| E-013 | lib/pure/osproc.nim | 226-228 | runningプロシージャ宣言 |
| E-014 | lib/pure/osproc.nim | 230-235 | processIDプロシージャ |
| E-015 | lib/pure/osproc.nim | 237-241 | waitForExitプロシージャ宣言 |
| E-016 | lib/pure/osproc.nim | 243-246 | peekExitCodeプロシージャ宣言 |
| E-017 | lib/pure/osproc.nim | 248-257 | inputStreamプロシージャ宣言 |
| E-018 | lib/pure/osproc.nim | 258-270 | outputStreamプロシージャ宣言 |
| E-019 | lib/pure/osproc.nim | 272-294 | errorStreamプロシージャ宣言 |
| E-020 | lib/pure/osproc.nim | 296-330 | inputHandle/outputHandle/errorHandle |
| E-021 | lib/pure/osproc.nim | 332-336 | countProcessorsプロシージャ |
| E-022 | lib/pure/osproc.nim | 341-458 | execProcessesプロシージャ |
| E-023 | lib/pure/osproc.nim | 460-487 | linesイテレータ |
| E-024 | lib/pure/osproc.nim | 489-511 | readLinesプロシージャ |
| E-025 | lib/pure/osproc.nim | 514-532 | execProcess実装 |
| E-026 | lib/pure/osproc.nim | 534-535 | streamAccessテンプレート |
| E-027 | lib/pure/osproc.nim | 667-753 | startProcess Windows実装 |
| E-028 | lib/pure/osproc.nim | 729-730 | createProcessW呼び出し |
| E-029 | lib/pure/osproc.nim | 960-1043 | startProcess POSIX実装 |
| E-030 | lib/pure/osproc.nim | 1045-1094 | startProcessAuxSpawn（posix_spawn） |
| E-031 | lib/pure/osproc.nim | 1096-1131 | startProcessAuxFork（fork） |
| E-032 | lib/pure/osproc.nim | 801-816 | waitForExit Windows実装 |
| E-033 | lib/pure/osproc.nim | 1242-1299 | waitForExit macOS/BSD実装（kqueue） |
| E-034 | lib/pure/osproc.nim | 1316-1359 | waitForExit Haiku実装 |
| E-035 | lib/pure/osproc.nim | 1365-1420 | waitForExit Linux実装（ポーリング） |

## Claims対応表

| Claim ID | 主張内容 | Evidence ID | 検証結果 |
|----------|---------|-------------|---------|
| C-001 | osprocモジュールはプロセス起動・管理を提供 | E-001 | 確認済 |
| C-002 | ProcessOptionはpoEchoCmdを含む | E-002 | 確認済 |
| C-003 | ProcessOptionはpoUsePathを含む | E-002 | 確認済 |
| C-004 | ProcessOptionはpoEvalCommandを含む | E-002 | 確認済 |
| C-005 | ProcessOptionはpoStdErrToStdOutを含む | E-002 | 確認済 |
| C-006 | ProcessOptionはpoParentStreamsを含む | E-002 | 確認済 |
| C-007 | ProcessOptionはpoInteractiveを含む | E-002 | 確認済 |
| C-008 | ProcessOptionはpoDaemonを含む | E-002 | 確認済 |
| C-009 | ProcessObjはid, exitFlag, exitStatusを持つ | E-003 | 確認済 |
| C-010 | ProcessObjはinHandle, outHandle, errHandleを持つ | E-003 | 確認済 |
| C-011 | ProcessObjはinStream, outStream, errStreamを持つ | E-003 | 確認済 |
| C-012 | startProcessでプロセス起動 | E-005, E-027, E-029 | 確認済 |
| C-013 | execProcessでコマンド実行と出力取得 | E-006, E-025 | 確認済 |
| C-014 | execCmdでコマンド実行 | E-007 | 確認済 |
| C-015 | closeでプロセスリソース解放 | E-008 | 確認済 |
| C-016 | suspendでプロセス一時停止 | E-009 | 確認済 |
| C-017 | resumeでプロセス再開 | E-010 | 確認済 |
| C-018 | terminateでSIGTERM送信 | E-011 | 確認済 |
| C-019 | killでSIGKILL送信 | E-012 | 確認済 |
| C-020 | runningでプロセス実行状態確認 | E-013 | 確認済 |
| C-021 | processIDでプロセスID取得 | E-014 | 確認済 |
| C-022 | waitForExitで終了待機 | E-015, E-032, E-033, E-034, E-035 | 確認済 |
| C-023 | peekExitCodeで終了コード確認 | E-016 | 確認済 |
| C-024 | inputStreamで標準入力ストリーム取得 | E-017 | 確認済 |
| C-025 | outputStreamで標準出力ストリーム取得 | E-018 | 確認済 |
| C-026 | errorStreamで標準エラーストリーム取得 | E-019 | 確認済 |
| C-027 | countProcessorsでCPU数取得 | E-021 | 確認済 |
| C-028 | execProcessesで並列実行 | E-022 | 確認済 |
| C-029 | linesイテレータで出力を行ごとに取得 | E-023 | 確認済 |
| C-030 | readLinesで全出力を取得 | E-024 | 確認済 |
| C-031 | WindowsではCreateProcessWを使用 | E-028 | 確認済 |
| C-032 | POSIXではposix_spawnまたはforkを使用 | E-030, E-031 | 確認済 |
| C-033 | macOS/BSDではkqueueでタイムアウト待機 | E-033 | 確認済 |
| C-034 | Haikuではwait_for_objects_etcを使用 | E-034 | 確認済 |
| C-035 | Linuxではポーリングでタイムアウト待機 | E-035 | 確認済 |

## 不足情報

| 項目 | 説明 | 影響度 |
|------|------|--------|
| なし | すべての主張がソースコードで確認可能 | - |

## リスクフラグ

| リスク | 説明 | 対応策 |
|--------|------|--------|
| コマンドインジェクション | poEvalCommand使用時にシェル経由で実行 | ユーザー入力を直接コマンドに渡さない |
| ゾンビプロセス | waitForExit/closeを呼ばないと残存 | 必ずcloseを呼び出す |
| デッドロック | パイプバッファ満杯時に発生可能 | 非同期読み書きまたはpoParentStreams使用 |
| ファイルディスクリプタリーク | 不適切なストリーム管理 | Process.close()を確実に呼び出す |
| タイムアウト精度 | プラットフォーム依存 | クリティカルな用途ではkqueue/epoll対応プラットフォーム推奨 |

## レビュアーチェックリスト

- [x] ProcessOption enumの説明がソースコードと一致している
- [x] ProcessObj型の説明がソースコードと一致している
- [x] startProcessの説明がソースコードと一致している
- [x] execProcess/execCmd/execCmdExの説明が正確である
- [x] プロセス制御関数（suspend/resume/terminate/kill）の説明が正確である
- [x] ストリーム関数（inputStream/outputStream/errorStream）の説明が正確である
- [x] waitForExitのプラットフォーム別実装の説明が正確である
- [x] execProcessesの並列実行ロジックの説明が正確である
- [x] コードリーディングガイドの行番号が正確である
