类似于之前的,把代码抄一遍并运行
一脸懵逼,似乎是通过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键同时按,果然退出了终端,
就这样吧。