我需要使用popen打开子进程,进程将不断询问用户输入...主进程需要通过管道发送该数据。在C++中使用popen连续写入子进程
这是我第一次尝试:
FILE *in;
char buff[1024];
if(!(in = popen("cd FIX/fix2/src; java -cp .:./* com.fix.bot", "w"))){
return 1;
}
while(1){
char buffer[] = { 'x' };
fwrite(buffer, sizeof(char), sizeof(buffer), in);
cout << "Wrote!" << endl;
usleep(1000000);
}
但是不发送数据!我需要用pclose()关闭管道,以便将数据写入进程。如何确保无需每次关闭管道都能写入数据?
有没有可能您的应用程序正在查找以\ n结尾的输入?因为你现在没有发送LF ... –
不要忘记检查'fwrite()的结果'我认为它不能保证写出你请求的所有东西。通常它会,但你需要验证。 –