QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 617|回复: 1

急问高手一个linux程序的问题

[复制链接]
发表于 2005-4-29 13:06:50 | 显示全部楼层 |阅读模式
程序很简单,代码及注释如下:
#include "stdio.h"
void main()
{
    int p1,p2,num;
    while((p1=fork())==-1); /*创建子进程p1 */
    if(p1==0)           /* 由子进程p1返回,执行下面的部分*/
    {
      printf("input value of num:\n");
      scanf("%d",&num);
      putchar('b');
     }
     else
        {
          while((p2=fork())==-1); /*创建子进程p2*/
          if(p2==0)   putchar('c');   /*执行p2*/
            else putchar('a');    /* 父进程执行 */
         }
}
父进程和两个子进程p1、p2是并发执行的,但是执行的时候,子进程p1的行为我觉得不能
理解,它完全不能在scanf处正常接受一个输入,上面一句printf("input value of num:
\n");和下面的putchar('b');都能正常输出,就是scanf("%d",&num);等待的时候,每次在
这个scanf等待输入时任意按一个键就直接输出一个‘b’了,并不显示我输入的那个数字,如果我接着再输入一个或几个数字的话,结果就会显示command not found,我想输入一个两位数以上的num值都不可能。这是为什么呢?为什么不能正常接受输入呢?  多谢指教!
发表于 2005-4-29 13:19:14 | 显示全部楼层
哪一句显示你输入的数字?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-6 03:33 , Processed in 0.064649 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表