[問題] 有關 IPC

作者: cutekid (可愛小孩子)   2015-01-09 15:18:53
大家好,
我有一支 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
謝謝大家 ^_^
作者: LiloHuang (十年一刻)   2015-01-09 23:09:00
ActivePerl,OS 用Windows囉? 請留意第二個連結的說明Non-Unix users should check their Your_OS::Processmodule for other possible solutions.如果直接開執行檔讀 stdout 請看 http://goo.gl/vAsnLr要是我大概會把該 C 程式碼改成 perlxs/module 來跑要更方便一點產生 C wrapper 可用 http://www.swig.org-| 以及 |- 在原生視窗系統不行,Cygwin 也許可以試試
作者: cutekid (可愛小孩子)   2015-01-12 13:20:00
哈,謝謝師父 ^_^

Links booklink

Contact Us: admin [ a t ] ucptt.com