看板 Perl 關於我們 聯絡資訊
大家好, 我有一支 Perl 程式 foo.pl 和一支 C 程式 a.out 其中 C 程式是從 stdin 讀取資料來源 從 stdout 寫出運算結果 我該如何利用 foo.pl 可以與 a.out 溝通呢? 1. 由 foo.pl 寫資料: to a.out 的 stdin 2. 從 foo.pl 讀資料: from a.out 的 stdout 曾考參過: http://blog.charlee.li/perl-pipe-process-etc/ http://perldoc.perl.org/perlipc.html#Safe-Pipe-Opens 註: 在 ActivePerl 使用如下 open pipe 方式: a. open(TO_READ, "-|"); b. open(TO_WRITE, "|-"); 會出現錯誤: '-' 不是內部或外部命令、可執行的程式或批次檔。 好像都不能同時達到 1,2 謝謝大家 ^_^ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.221.80.36 ※ 文章網址: https://www.ptt.cc/bbs/Perl/M.1420787937.A.A68.html ※ 編輯: cutekid (61.221.80.36), 01/09/2015 16:53:01
LiloHuang: ActivePerl,OS 用Windows囉? 請留意第二個連結的說明 01/09 23:09
LiloHuang: Non-Unix users should check their Your_OS::Process 01/09 23:09
LiloHuang: module for other possible solutions. 01/09 23:09
LiloHuang: 如果直接開執行檔讀 stdout 請看 http://goo.gl/vAsnLr 01/09 23:22
LiloHuang: 要是我大概會把該 C 程式碼改成 perlxs/module 來跑 01/09 23:22
LiloHuang: 要更方便一點產生 C wrapper 可用 http://www.swig.org 01/09 23:23
LiloHuang: -| 以及 |- 在原生視窗系統不行,Cygwin 也許可以試試 01/09 23:24
cutekid: 哈,謝謝師父 ^_^ 01/12 13:20