c - 主存中的程序元素

标签 c linux unix operating-system

当像 c 程序可执行文件 a.out 这样的进程运行时,RAM 中应该存在哪些程序元素?程序代码也在吗?如果是,需要什么?

最佳答案

是的,当 a.out 运行时,代码 a.out 存在于内存中。指令指针(或寄存器)指向内存中正在执行的当前操作,大多数操作还会将指令指针提前到下一个操作。虽然,如果您所说的代码是指原始 C 代码,但情况并非总是如此——只有组装后的可执行字节码必须在内存中。编译器/链接器有一些标志,可以将 C 代码包含在汇编的输出可执行文件中,从而使调试更容易。

如果我们谈论的是进程的虚拟内存空间,这还将包括一些内存映射的 io 寄存器、一些内核空间函数和程序所需的任何库(至少 libc 用于您的通用类型操作).

关于c - 主存中的程序元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8937667/

相关文章:

c - 我如何在这个简单的 C shell 中设置超时?

linux - 想用 linux (bash) 写一个命令脚本

linux - 如何使用附加控制台作为一个进程的输出和另一个进程的输入?

python - Unix - 哪个应用程序在前台?

unix - `less` 中是否有字边界的快捷方式?

无法通过引用将 typedef 结构传递给函数

控制 Mandelbrot 集的放大位置

android - 适用于 Linux 上的 Android 的 Poco C++

c++ - fork() 输出链

c - 这个字符串怎么能打印出来