C程序: __start

标签 c linux unix gcc

<分区>

你能帮我理解一下吗

__start

在 C 内部使用?

它是 main 函数的精确副本还是已编译程序的入口点?

只是想知道,它是如何被使用的?

最佳答案

Here很好地概述了程序启动之前 main 期间发生的情况。特别是,它表明 __start 从操作系统的角度来看是您程序的实际入口点

这是 instruction pointer 的第一个地址将开始在您的程序中计数。

那里的代码调用一些 C 运行时库例程只是为了做一些内务处理,然后调用你的 main,然后把东西放下并用任何退出代码调用 exit main 返回。


一图胜千言:

C runtime startup diagram

关于C程序: __start,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15919356/

相关文章:

c - 删除堆栈给定索引处的元素,该索引是堆栈链表的一部分

c - 如何在linux中将UID/GID映射到用户名/组名

linux - 使用 bash 脚本获取文件字数而不使用 wc 命令?

unix - 使用本地环境中的变量执行单行 ssh 命令

c - 使用udp协议(protocol)的raw_socket通信

c - 树莓派SPI连接: transition diagram malfunctioning

c - 构建 Linux 内核模块的问题

linux - Docker 不应将新文件写入原始目录

macos - 远程端口转发 SSH 被视为从 127.0.0.1 访问的无效用户

c - 不清楚汉诺塔的递归调用