1.7从标准输入读命令并执行

类似于之前的,把代码抄一遍并运行
在这里插入图片描述
一脸懵逼,似乎是通过fork()获取进程pid,pid必须大于0,waitpid()返回的值也不能>=0,
也不知道在终端的%后面写什么。
看看书上怎么写的。如果懂了就学到东西了。

发现抄错了,。。。。
重新抄,重新运行。
在这里插入图片描述

看了书上的解释,大概明白了,试着阐述一下。
1,通过%后输入的内容,获取buffer
2,fork()一次执行,二次返回。
执行后对调用进程(父进程)产生副本(子进程),
返回是对父进程返回子进程的id(非负),对子进程返回0
3,在这个程序里,子进程通过execlp()函数执行buffer里面的内容,此时父进程waitpid()等待子进程完成,类似于windows里面的waitforsingleobject()。

即,fork()+execlp()=产生新进程

现在看看
在这里插入图片描述
。。我勒个去,
仔细看下代码,第11行抄错了。if(buf[strlen(buf-1)] == ‘\n’)应该是if(buf[strlen(buf)-1] == ‘\n’)

重新修正下,
在这里插入图片描述
其他ok了,最后一句是按的ctrl+D,发现不对
在这里插入图片描述
这样也不对,
看了下书,是ctrl键和D键同时按,果然退出了终端,
就这样吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值