gpt4 book ai didi

c++ - argc从哪里来?

转载 作者:太空狗 更新时间:2023-10-29 11:34:03 25 4
gpt4 key购买 nike

fork/exec 创建了一个新进程。 Exec 设置了命令行参数,但我没有看到它设置了要放入 argc 中的那些参数的数量。

main() 应该是在新进程中运行的第一个函数,但是 argc 已经设置好了。

设置在哪里?它必须是某种设置代码,在调用 main 之前对参数进行计数,但我没有读过任何内容来解释此设置代码的作用或它所在的位置。

这是在 libc 中吗?这在每个操作系统上是否都相同并且包含在某些规范中?除此之外,我在哪里可以找到设置代码中发生的事情?它是在实例化全局变量之前调用的吗?

最佳答案

在调用 main 之前,大多数实现中都会发生很多事情(通常环境设置类似于 crt0,即 C 运行时启动)。

main 退出后,还有很多事情可能会发生,例如资源关闭、atexit 退出处理程序等等。

C 标准只真正涵盖了语言方面发生的事情,而不是实现如何在幕后工作(这基本上就是您要问的)。每个实现可能以不同的方式做事,但许多 UNIX 类型将具有类似于前面提到的 crt0 的东西,它会执行设置。

关于c++ - argc从哪里来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8953914/

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