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");后,它不会立即输出;

当我用两遍program_process.stdin.write("1\n");后,它会一股脑输出两个1;

但是我希望输入一次program_process.stdin.write("1\n");它的

sub_process.stdout.on('data', (data) => {console.log(data);});

就会输出一个1,就像程序逻辑那样,但现实并不是,你只有连续输入两个1之后,它会连续输出两个1,这应该是缓冲区刷新传送的问题,我不知道具体是怎么回事。

有人说这样做:

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();});

这样反而连输出都不输出了。

被这个问题快整自闭了都。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值