全部学习汇总: GreyZhang/g_unix: some basic learning about unix operating system. (github.com)
在看shell的练习课程的时候,提示需要用到exec函数。为此,我找了一份说明教程来简单看了一下。
1. 首先,这个函数其实是一组函数。而这一组函数其实都是属于库函数的。
2. exec这一组函数其实是用被调用的进程来取代当前的进程。
3. 传入的相关参数其实是决定了一个可以执行的文件名称。
4. 后缀带有l的,传入的参数其实是一个列表。
1. 函数中的后缀带有v的,对应的参数参数的信息是一个vector,数组。
2. 这里的机组函数其实功能都是类似的,但是不同的函数使用的参数有所不同。不过,第二个参数都应该强制输入,可以省略为空字符串。最后,要以NULL来作为结尾。
3. 关于返回值这部分需要注意一下,虽说函数原型中有一个返回值int,但是这个函数其实存在两种情况:成功的时候直接不会返回,而失败的时候则会返回错误码,返回的错误码是-1。从这方面,其实可以看得出来前面介绍的替换进程镜像的概念。这么看,其实这个函数大部分时候是不会有返回值的。
1. 这个系列的函数主要还是POSIX的标准中要求的。
2. 在GNU的工程中,也针对这一组函数进行了一点扩展。
以上就是这一组函数的基本介绍,其实了解这一组函数的用法只需要了解其中的一个函数即可,其他的函数是类似的,只是参数不同。
为此,设计上面的测试代码。这里,通过execl来调用了系统中的ls命令。如果要执行成功,这个文件的目录自然是需要写正确的。
关于这个目录的准确性,上面进行了检查。
这是整个测试的结果,从这个结果可以看得出来这个调用还是成功的。源代码中,其实main执行的前后都有一个打印输出,但是在这里只有一个打印输出,end那一部分信息没有。这其实就是函数没有返回的一个体现。
关于错误的测试,换一个错误的文件信息就能够测试出来。比较简单,这里就不去做这个测试了。
下一篇: 有关雪的儿童诗