免费注册 查看新帖 |

Chinaunix

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

求教shell中输入./a.out;./a.out的指令含义 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-05-07 21:54 |只看该作者 |倒序浏览
如题,在sh命令行中输入./a.out;./a.out的含义是什么,这和多次分开的./a.out有什么区别啊?

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
2 [报告]
发表于 2012-05-07 22:59 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2012-05-07 23:44 |只看该作者
他是说的./a.out;./a.out <enter>

./a.out <enter>
./a.out <enter>

这个没有区别,分号就是用来在同一行分割多个命令的.

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
4 [报告]
发表于 2012-05-08 06:44 |只看该作者

  1. Commands separated by a ; are executed sequentially; the shell waits for each command to terminate in turn. The return status is the exit status of the last command executed.
复制代码

论坛徽章:
0
5 [报告]
发表于 2012-05-08 11:21 |只看该作者
回复 2# zooyo
  1. #include"apue.h"
  2. static void charatatime(char *);
  3. int main(void)
  4. {
  5.         pid_t pid;
  6.         TELL_WAIT();
  7.         if((pid=fork())<0){
  8.                 printf("error");
  9.         }else if(pid==0){
  10.                 waitparent();
  11.                 charatatime("output from child");
  12.         }else{
  13.                 charatatime("output from parent");
  14.                 TELL_CHILD(pid);
  15.         }
  16.         exit(0);
  17. }
  18. static void charatatime(char *str)
  19. {
  20.         char *ptr;
  21.         int c;
  22.         setbuf(stdout,NULL);
  23.         for(ptr=str;(c=*ptr++)!=0)
  24.                 putc(c,stdout);
复制代码
这是apue的习题8-3,执行的是./a.out;./a.out;./a.out
结果是output from parent
        output from parent
        ouotuptut from child
        put from parent
        output from child
        utput from child
多次输出结果错误,为什么会出现这种情况?(这是原题)
我的问题是,./a.out 如果是分别执行三次,那么为什么相互之间会有影响呢?


   

论坛徽章:
0
6 [报告]
发表于 2012-05-08 11:23 |只看该作者
回复 4# waker waker,起的好早啊 !5楼有我对问题的描述,还是菜鸟!谢谢


   

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
7 [报告]
发表于 2012-05-08 13:11 |只看该作者
你连\n都没输出,哪儿来那么多行?

论坛徽章:
0
8 [报告]
发表于 2012-05-08 13:33 |只看该作者
回复 7# waker 漏了。。。
charatatime("output from child\n");
charatatime("output from parent\n");


   

论坛徽章:
0
9 [报告]
发表于 2012-05-08 13:38 |只看该作者
回复 7# waker 我感觉问题出在./a.out;./a.out;./a.out
, 当第一次执行a.out的时候,父进程在子进程之前结束,而然后shell执行第二个a.out,此时第二个a.out的父进程收到了第一个进程的子进程的影响?



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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP