暂停C中的子进程

时间:2017-02-21 20:29:50

标签: c signals

在我的C程序中,当用户输入为'p'时,我试图暂停execl创建的子进程的状态。我有两个终端用于输入,它是父进程,另一个用于输出,即子进程。我在子进程中有信号处理程序,父进程可以发送它以增加和减少其输出的速度。我试着做了

kill(child_pid,SIGSTOP)

但这只会阻止孩子和父母。

截至目前为了暂停我有signal_handlers保存当前速度然后将速度更改为2147483647秒然后当它们恢复时它将保存的速度恢复。这是合理的吗?(大约68年,我在一段时间内有它)

使用以下代码将输出发送到其他终端。

static state* start_button(void)
{
    state *destination;                                                        

    pid_t pid;                                                    
    pid = fork();                                                 
    switch(pid)                                                   
    {                                                                          
        case -1:                                   
            destination = &ready;                                              
            break;                                                             
        case 0:                                                                          
            execl("./outputTerminal",
                "outputTerminal",file_number,"/dev/ttys001",NULL);                                                                     
            break;                                                             
        default:                                                               
            destination = &going;                                            
            break;                                                             
    }                                                                          

    return destination;
 }

0 个答案:

没有答案