使用新终端分拣应用程序,将其单独的输入和输出与控制权转移给它

时间:2017-10-01 09:28:52

标签: c cygwin fork

我正在分配子进程并在该子进程中执行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
} 

0 个答案:

没有答案