C 语言linux 多进程
#include <stdio.h>
#include <ncurses.h>
#include <unistd.h>
int main()
{
//freopen( "in", "r", stdin );
int pid;
char a;
char b;
initscr();
crmode();
noecho();
keypad( stdscr, true );
pid = fork();
if( pid == 0 )
{
while( 1 )
{
a = getch();
mvprintw( 0, 0, " child : %c", a );
}
}
else
{
while( 1 )
{
a = getch();
mvprintw( 10, 0, "father :%c", a );
}
}
endwin();
return 0;
}
如上面这个程序,为什么不能父进程执行一次以后,就再也不执行了,以后按键一直都是自进程刷新
请问一下这是为什么? c 多进程
[解决办法]
这个很正常啊,两个进程,只有一个控制终端啊!
[解决办法]
进程调度相关吧,在getch时两个都阻塞,而getch只允许一个进程访问。
出现各种情况都是随机的吧...
我这边是全部都父进程输出..
个人猜测,供参考。
[解决办法]
这不是两个进程共用一个终端么。
[解决办法]
如上面这个程序,为什么不能父进程执行一次以后,就再也不执行了,以后按键一直都是自进程刷新
// 不是不再执行了,而是你刷新的次数太少了