在激活进程后,在scanf()中没有阻塞?

时间:2013-07-15 13:13:02

标签: c++ c linux operating-system

我有一个父进程'A'和一个子进程'B'。子进程就像一个控制台进程,就像这样实现..

#include<iostream>
#include<cstdio>

    int main()
    {
        char inputCommand[50];
        while(1)
        {
            cout<<"CONSOLE>";
            cout.flush();
            strcpy(inputCommand,"");    
            __fpurge(stdin);
            scanf(" %s",inputCommand);
            return 0;
            // here I have an array of commands
            // next i am comparing the input command with the array and getting a number
            // next i am having a swith statement which do some action according to the 
            // input command. 
            // default case is :: no command found!! 

        }
    }

在正常情况下,此应用程序正常工作。但是当我将进程'B'设置为活动时 使用tcsetpgrp()进行处理或使用&amp;运行后台进程'A'要将信号重定向到进程'B'而不是'A',进程'B'在scanf()中没有阻塞,并且“找不到命令!!”在屏幕上不断打印?请帮我解决这个问题。

感谢。

0 个答案:

没有答案