我正在分配子进程并在该子进程中执行BinaryApp.exe。但是,我想要一个单独的终端窗口,用于新分叉的BinaryApp.exe和控制转移到该终端窗口,以便它可以检测任何击键。通过分离终端窗口,我可以更直接地显示进程间通信,因为父进程和子进程将在它们各自的终端窗口中输出。我在Windows上使用cygwinb20。
我编写了一个用于分叉BinaryApp.exe的代码,但它在与父代相同的窗口中显示其输出。这是代码:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <errno.h>
int main() {
pid_t Pid;
int ret;
printf("Main Program\n Initializing processe...\n");
Pid = fork();
if (Pid >= 0) /* fork succeeded */
{
if (Pid == 0) /* fork() returns 0 for the child process */
{
ret = execl("../BinaryApp.exe","BinaryApp.exe",(char*)NULL);
if(ret == -1) {
perror("execv - BinaryApp.exe");
}
}
}
else /* failure */
{
perror("fork - BinaryApp.exe");
exit(0);
}
// Doing other things
}