首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C 语言linux 多进程,该怎么解决

2013-03-25 
C 语言linux 多进程#include stdio.h#include ncurses.h#include unistd.hint main(){//freopen( i

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只允许一个进程访问。
出现各种情况都是随机的吧...
我这边是全部都父进程输出..
个人猜测,供参考。
[解决办法]
这不是两个进程共用一个终端么。

[解决办法]

如上面这个程序,为什么不能父进程执行一次以后,就再也不执行了,以后按键一直都是自进程刷新

// 不是不再执行了,而是你刷新的次数太少了

热点排行