关于exec函数详解,exe函数怎么使用这个很多人还不知道,今天小爱来为大家解答以上的问题,现在让我们一起来看看吧!
exec函数详解 exe函数怎么使用
exec函数详解 exe函数怎么使用
exec函数详解 exe函数怎么使用
1、哪里写的这些...好乱阿..先解释下基本的:int main(argc,char argv[])main的参数,就是命令行参数.比如你的可执行文件是test,你希望在程序执行时传入IP地址,那么可以这样:./test 127.0.0.1此时,argc =1,argv[1]是就是指向"127.0.0.1"指针(命令参数全部当作字符串来处理的)。
2、而 argv[0]就代表个参数,这里对应的就是"./test"。
3、argc和argv在mian里面都是可以使用的,出了main的范围就不能使用了。
4、再来说你提出的个地方,exec的问题。
5、exec实际上包含了一组函数,execl, execlp, execle, execv, execvp, execvpe具体使用方法,你man execv就可以得到这些函数的使用方法。
6、exec函数的作用是,产生一个新进程,结束当前进程(具体执行的作是当前进程的一部分数据和权限,然后根据参数启动一个新的进程)。
7、exec这组函数执行时候,需要提供的参数包括:一个可执行程序的路径,传递给可执行程序的参数。
8、(这里的参数,与刚才说到的main的参数含义相同。
9、)说到这里应该明白了吧...就一个。
10、我不知道你要hello world干什么...照你意思给写了个.个,就是你贴出来的代码改动一点点(我这边运行有点问题):#include main(int argc,char argv[]){int i=0while(i{printf("arguement %d : %s ",i,argv[i]);printf("n");i++;}}运行程序:$gcc test.c -o test$./test hello world输出结果:[ksl@myhost WGX]$ ./test hello worldArguement 0:./testArguement 1:helloArguement 2:worldArguement 3:(null)然后第二个,使用exec的例子,我用execl吧..文件名是test1.c#include #include #include void main(int argc,char argv[]){printf("This is not exec...");execl("./test","hello","world",NULL);//如果exec执行正常,下面的printf将不会被执行//因为当前进程已经结束,./test将被执行printf("exec error");}输出结果:[ksl@myhost WGX]$ ./test1Arguement 0:helloArguement 1:worldArguement 2:(null)后者并没输出"./test"....就是exec启动的程序,其命令行参数中只有参数.(我也不晓得原因...=.=||)不知道你是不是学习编程的,如果不是就没必要看了。
11、1.PID是进程标识号,它是一个进程的性标识。
12、PPID是该进程父进程的进程标识号。
13、2.fork和exec和pid完全就是2件事情不能混为一谈。
14、fork是一个linux库函数。
15、他是用来创建一个新的进程。
16、至于exec是一个系列函数,C标准库函数,用来改变进程上下文的。
17、2者结合使用可以创建一个新的进程。
18、3.如果创建新的进程,一般是用fork,他会返回这个被创建进程的PID,你可以通过PID找到这个进程。
19、int execlp(const char file, const char arg, ...);这个是函数原型其实你可以在第二个参数的地方添加任何参数,而不需要是文件名,你可以试试。
20、比方说execl(" /bin/ls", "", "-la", "NULL")你看看打出来什么就知道个参数有什么用The const char arg and subsequent ellipses in the execl(), execlp(), and execle() functions can be thought of as arg0, arg1, ..., argn. Toger they describe a list of one or more pointers to null-terminated strings that represent the argument list ailable to the executed program. The first argument, by convention, should point to the filename associated with the file being executed. The list of arguments must beterminated by a null pointer, and, since these are variadic functions, this pointer must be cast (char )NULL.简单解释一下,上面这一段是在linux终端下"man 3 exec"查看手册时的一段对exec函数的描述。
本文到这结束,希望上面文章对大家有所帮助。