gpt4 book ai didi

c++ - execl() 的参数传递到哪里?

转载 作者:太空宇宙 更新时间:2023-11-04 05:50:07 27 4
gpt4 key购买 nike

在UNIX环境下的系统编程上下文中,在使用C++编程语言时,在我的理解中,execl()会传入它要运行的程序的路径,以及一个vector。当传入该 vector 时,我将其理解为传入入口点,通常是 main 函数。在一个主函数中,我明白我的参数可以写成:

int main(int argc, int* argv[]){ return 0; } 

考虑到上述情况,当参数被传递到 execl() 时,在我看来它并没有直接传递到主函数中。

是否存在将 execl() 的参数更改为整数数据类型和数组的“处理”阶段?

同时,如果我的理解有任何错误,欢迎指正。

最佳答案

您为 main 函数提供的签名不正确。应该是:

int main(int argc, char *argv[]);

或者:

int main(void);

至于参数,传递给 execl 的参数应该与被调用程序接收的参数相匹配。

例如,如果程序 A 像这样执行程序 B:

execl("/path/to/progB", "progB", "-a", "1", "-x", "hello", "command", (char *)NULL);

然后在程序 B 中,argc 将为 6,而 argv 基本上为:

 { "progB", "-a", "1", "-x", "hello", "command" }

关于c++ - execl() 的参数传递到哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44207045/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com