use*_*102 7 c c++ linux ubuntu exec
我正在学习linux编程并且遇到了exec函数,它非常有用.但问题是exec函数参数非常混乱,我无法掌握哪个参数是出于什么目的.在下面的代码execl()函数中,通过创建fork()的子函数调用,最后一个参数(NULL)的目的是什么execl()?
execl("/bin/ls","ls","-l",NULL);
Run Code Online (Sandbox Code Playgroud)
如果有人可以解释NULL论证和其他论点的目的是什么,以及exec()家庭功能论证的目的,那对我来说将是一个很大的帮助!
Jam*_*nze 14
创建未定义的行为.这不是法律要求execl.正确的电话可能是:
execl( "/bin/ls", "ls", "-l", (char*)0 );
Run Code Online (Sandbox Code Playgroud)
最后一个参数必须是(char*)0,或者您有未定义的行为.第一个参数是可执行文件的路径.argv执行程序中出现以下参数.这些参数的列表由a终止(char*)0; 这就是被调用函数知道最后一个参数已经到达的方式.例如,在上面的示例中,可执行文件"/bin/ls"将替换您的代码; 在它中main,它将具有argc相等的2,argv[0]相等"ls"且argv[1]相等"-l".
在此功能之后,您应该立即拥有错误处理代码.(execl总是返回-1,当它返回时,所以你不需要测试它.它只会在出现某种错误时返回.)
| 归档时间: |
|
| 查看次数: |
25647 次 |
| 最近记录: |