EXEC族函数的一些函数使用
原文链接: https://blog.youkuaiyun.com/u014530704/article/details/73848573?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161725230916780271530248%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161725230916780271530248&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-5-73848573.pc_search_result_cache&utm_term=linux%E8%BF%9B%E7%A8%8Bexec.
这篇文章讲解的exec相关函数讲解的很好,如果在实际使用过程中的话,具体细节可以来看这篇文章,膜拜大佬(我就做做示例讲解,讲讲怎么使用了。)
exec族函数函数的作用:
我们用fork函数创建新进程后,经常会在新进程中调用exec函数去执行另外一个程序。当进程调用exec函数时,该进程被完全替换为新程序。因为调用exec函数并不创建新进程,所以前后进程的ID并没有改变。
简单来说就是一个进程中去调用另一个程序,这是以前没有遇到过的。
那想这么多的exec函数,我们都要学会吗,没有必要,这么多的函数它的本质都是一样的,都是在进程调用时执行另一个程序并且代替当且自己这个进程,我们熟练掌握一种就是要已经够用了,我们选择execl函数。来看看这个函数。
该函数是第一个参数是你想要执行的程序路径,第二个为程序名字,之后是该程序的参数,最后必须以NULL结尾。
注意,这里的程序都是子进程调用的另一个程序!
我们先写一个简单的程序作为我们的被调用程序:
一个简单的打印自己得到的参数的函数,名字命名为eco.c
然后写一个实验程序:demo6.c
对吧,这个程序也没什么特别的,唯一就是第八行,它调用execl函数来执行另一个程序,调用谁呢,eco.c呗,注意要先编译eco.c可执行文件命名为eco,然后传给它参数abc,最后以NULL结尾,对吧,完全符合上面的标准。
好,我们来看看会发生什么:
可以看到,demo6.c运行成功了,它先打印了自己的语句,又执行了eco文件,打印出自己的参数。
这就实现了一个程序中调用另一个程序了,很神奇吧,这在以后服务器和网络编程中常常能用到。
(师上官可编程)