gpt4 book ai didi

execve - execve如何知道argv中传递了多少个参数?

转载 作者:行者123 更新时间:2023-12-01 14:30:38 27 4
gpt4 key购买 nike

在 C 程序中,main 函数通过查看 argc 知道在 argv 中传递了多少参数。我似乎不清楚 syscall execve 如何知道传递给它的参数数量。有人可以帮助解释 execve 如何处理参数吗?

最佳答案

我最近的 Linux 系统上的 execve 文档说:

argv is an array of argument strings passed to the new program. envp is an array of strings, conventionally of the form key=value, which are passed as environment to the new program. Both argv and envp must be terminated by a null pointer. The argument vector and environment can be accessed by the called program’s main function, when it is defined as:

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

我把重要的部分加粗了。 argv 列表的末尾必须有一个空指针。内核将计算参数并将计数作为 argc 传递。

关于execve - execve如何知道argv中传递了多少个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24947432/

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