c语言 spawn函数,我在electron程序中spawn了一个C语言程序作为子进程,我该如何与这个子进程通信?...
C語言的代碼為:
#include?
int?main(){
int?i?=?0;
scanf`("%d",?&i);`
printf`("%d\n",?i);`
scanf`("%d",?&i);`
printf`("%d\n",?i);`
return?0;
}
我用sub_process.stdin.write("1\n");后,它不會立即輸出;
當(dāng)我用兩遍program_process.stdin.write("1\n");后,它會一股腦輸出兩個1;
但是我希望輸入一次program_process.stdin.write("1\n");它的
sub_process.stdout.on('data',?(data)?=>?{console.log(data);});
就會輸出一個1,就像程序邏輯那樣,但現(xiàn)實并不是,你只有連續(xù)輸入兩個1之后,它會連續(xù)輸出兩個1,這應(yīng)該是緩沖區(qū)刷新傳送的問題,我不知道具體是怎么回事。
有人說這樣做:
sub_process.stdin.cork();
sub_process.stdin.write(`"1\n"`);
sub_process.stdin.uncork();
但是我試了一下并不行,或者異步做:
sub_process.stdin.cork();
sub_process.stdin.write(`"1\n",function`(){sub_process.stdin.uncork();});
這樣反而連輸出都不輸出了。
被這個問題快整自閉了都。。。
總結(jié)
以上是生活随笔為你收集整理的c语言 spawn函数,我在electron程序中spawn了一个C语言程序作为子进程,我该如何与这个子进程通信?...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: git如何选择性合并_小姐姐用 10 张
- 下一篇: python语言的注释语句引导符_Pyt