免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1430 | 回复: 2
打印 上一主题 下一主题

[Linux] c写的一个简单shell出现的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-05-13 18:04 |只看该作者 |倒序浏览
  1. int main()
  2. {
  3.         char cmd[nSize+10];
  4.         int pid;   int status;

  5.         while(1)
  6.         {
  7.                 printf("MY_SHELL:");
  8.                 fflush(stdout);
  9.                 fgets(cmd,nSize,stdin);
  10.                 if( cmd[ strlen(cmd)-1 ] == '\n' )
  11.                         cmd[ strlen(cmd)-1 ] = '\0';
  12.                 if( (pid=fork()) > 0 )
  13.                 {
  14.                         wait(&status);
  15.                 }
  16.                 else if( pid == 0 )
  17.                 {
  18.                         //sleep(1);                       
  19.                         execute(cmd);  //自己写的一个函数
  20.                         fflush(stdout);
  21.                         _exit(0);
  22.                 }
  23.                 else
  24.                 {
  25.                         printf("error!\n");
  26.                 }                               
  27.         }
  28.         return 0;
  29. }
复制代码
子进程中如果不加上sleep(1)时,就会不执行命令。加上后没有问题,想问一下为什么?

论坛徽章:
0
2 [报告]
发表于 2013-05-14 10:46 |只看该作者
不加会输出什么?

论坛徽章:
0
3 [报告]
发表于 2013-05-15 22:25 |只看该作者
输入命令后,什么都不输出,求大神指教
回复 2# inthesunset


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

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP