mcp_proc_recv_line

子プロセス stdout から 1 行取得

mcp_proc_recv_line hid, var, buflen

hid    : ハンドル
var    : 結果を格納する文字列変数 (sdim 済)
buflen : 変数のバッファサイズ

(プラグイン / モジュール : hspmcp.dll)

解説

子プロセスの stdout から改行 (\n) で区切られた 1 行を取り出します。
バックグラウンド reader thread が常時 ReadFile を回しているので、
本命令はノンブロッキングで、buffer に未到達の場合はすぐ 0 を返します。

戻り値:
  >0 : 読めたバイト数 (改行は含まない)
   0 : まだ buffer に行が無い (await でリトライ可)
  -1 : ハンドル無効

関連項目

mcp_proc_send子プロセス stdin にデータを書き込む(hspmcp.dll)

情報

プラグイン / モジュールhspmcp.dll
バージョン1.0
作成日2026-04-14
著作者IronHSP / hspmcp
URLhttps://github.com/inovia/IronHSP
備考hspmcp.dll は HSP からは扱いづらい以下の処理を C++ で隠蔽します:
* CreateProcess + 匿名 pipe で子プロセスを spawn
* 子プロセス stdin/stdout を行単位で読み書き
* バックグラウンド reader thread + 内部 line buffer
* 自プロセスの stdin/stdout (HSP3CL を MCP server として動かすとき)

主に Anthropic Model Context Protocol (MCP) の stdio transport
実装に使うために作りましたが、汎用の "process pipe wrapper" として
他の用途にも使えます (子プロセス起動 + パイプ通信が必要な任意の場面)。

HSP からは package/win32/common/iron_mcp_client.hsp
iron_mcp_server.hsp を include して使うのが推奨です。
タイプ拡張命令
グループhspmcp ― process spawn
対応環境
  • その他 : Win32 / Win64
hs ファイルhsphelp\hspmcp.hs