首页 > 试题广场 >

两个进程加载同一个动态链接库时(windows钟的dll文件

[单选题]
两个进程加载同一个动态链接库时(windows钟的dll文件或linux中的.so文件),动态链接库的以下哪个资源是两个进程共享的?
  • 文本区域
  • 栈区域
  • 堆区域
  • 文件描述符
推荐
文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向 内核 为每一个 进程 所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在 程序设计 中,一些涉及底层的程序编写往往会围绕着文件描述符展开。但是文件描述符这一概念往往只适用于 UNIX Linux 这样的操作系统。

Linux/ UNIX 系统:在exec()之后和程序指令运行之前的过程:
  • 将可执行文件的内存段添加到进程映像中;
  • 把共享目标内存段添加到进程映像中;
  • 为可执行文件和它的共享目标(动态链接库)执行重定位操作;
  • 关闭用来读入可执行文件的文件描述符,如果动态链接程序收到过这样的文件描述符的话;
  • 将控制转交给程序,使得程序好像从exec()直接得到控制
参考:维基百科、 《C 语言编程透视》
编辑于 2016-04-23 20:14:34 回复(0)
文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向 内核 为每一个 进程 所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在 程序设计 中,一些涉及底层的程序编写往往会围绕着文件描述符展开。但是文件描述符这一概念往往只适用于 UNIX  Linux 这样的操作系统。

Linux/ UNIX 系统:在exec()之后和程序指令运行之前的过程:
  • 将可执行文件的内存段添加到进程映像中;
  • 把共享目标内存段添加到进程映像中;
  • 为可执行文件和它的共享目标(动态链接库)执行重定位操作;
  • 关闭用来读入可执行文件的文件描述符,如果动态链接程序收到过这样的文件描述符的话;
  • 将控制转交给程序,使得程序好像从exec()直接得到控制
发表于 2016-03-07 20:10:12 回复(0)
code segment (text)的代码不是共享的吗?
发表于 2017-08-15 19:56:56 回复(0)
这题难啊,选B吧,好像有共享栈指针啥的
发表于 2016-07-26 23:43:10 回复(0)