问题
为什么二进制文件中的stdout变量链接到libc地址?
这个具体的libc地址是什么?
答案 0 :(得分:2)
module.exports = helper1
指向的FILE
对象可以在运行时由libc init函数分配,用于像glibc这样的libc实现,需要在FILE *stdout
运行之前调用init函数。 / p>
因此它不应该全局存在于libc中,因为它们都具有相同的标准输出
每个进程都有自己的main
指针,指向自己的stdout
对象,因为共享库的数据部分是私有映射。
使用相同库的不同进程没有共享内存用于读写数据。