当前位置:  技术问答>linux和unix

.so文件被程序加载后,不停止程序,可否更新.so文件?

    来源: 互联网  发布时间:2016-03-07

    本文导语:  问题如标题 1、我自己编写了一个.so文件,然后写了一个程序调用它 2、假如一些原因,我需要更改.so文件,也就是我重新编译一个.so文件 覆盖掉原先那个.so文件,但是,在这个过程中,我的程序并没有停止, 一直...

问题如标题

1、我自己编写了一个.so文件,然后写了一个程序调用它
2、假如一些原因,我需要更改.so文件,也就是我重新编译一个.so文件
覆盖掉原先那个.so文件,但是,在这个过程中,我的程序并没有停止,
一直在运行。
3、上面的要求可否实现?

注:其实,我已经试验过,不可实现,在第二步时,我用root权限用新的.so文件
覆盖旧的.so文件时,有个提示--"是否覆盖",我选择 y ,然后正在运行的程序退出了,
提示“segment fault”。
我的理解是:原先.so文件加载内存中的地址,因为被新的.so文件覆盖的问题,地址变化,
导致正在运行的文件不能够在内存中找到该.so文件,导致程序崩溃。

各位朋友有什么看法?
最好能够给个方法实现我上面说的要求。
小弟先谢谢各位了

|
不知道你的动态是不是理解的有问题。
动态应该是指在你的程序执行到要调用.so文件的时候才去找这个函数,愚见。
在你加载.so的程序的时候,写个线程监视看有没有要更新.so的信号,当你要更新.so的时候,发个信号。停止调用,dlclose.然后覆盖.so.再dlopen so

|
在你调用so文件的程序里写个接口先不用这个so,然后更新..

|
听你的描述好像是是在编译的时候就指定了so文件吧?

其实so文件还有一种加载方法,就是用 dlopen,dlclose。这样就可以停止调用某.so文件。

|
一般的SO直接覆盖的时候不会提示运行中的.
这种可以发个信号给主程序,让主程序重启就完成了动态加载SO.

|


嗯,这是个可行的办法。

    
 
 

您可能感兴趣的文章:

  • http协议介绍,文件上传分析及程序举例
  • 请教高手一个简单问题:给定一个文件名,如何去查找该文件正在被几个程序使用,并怎么样才可以切断这个文件与正在打开该文件的程序之间的
  • Ubuntu程序开机自动启动设置(服务和自动运行配置文件)的几种方法
  • 在程序建立的文件夹里,程序自己无法创建文件?
  • Linux下c/c++开发之程序崩溃(Segment fault)时内核转储文件(core dump)生成设置方法
  • 我的程序是用c写的gtk+程序,有个函数的参数要传给它图片的文件名,但是图片和原程序不在同一目录下怎么办?怎么在程序里指定文件的路径
  • 求几个完整的Java程序,什么内容的程序都行,要包含工程文件和全部源文件,主要用于学习,发者就给分。
  • 用jbuilder开发的程序,其中用到了xylayout,将应用程序做成了jar文件,运行jar文件时,提示错误。请大家多帮忙
  • 请问用JB7编译过的JAVA程序,哪一个文件是可执行程序啊?我怎么找不到啊?不是CLASS文件吧。双击他直接把JB7打开了。
  • Linux下的程序是在内存中运行的吗?为什么在程序运行的时候可以删除程序文件?
  • 执行一程序,向一个文本文件中写入数据,报文件大小超出限制错误!
  • 请问怎么在C程序中得到该可执行程序的文件名???
  • 怎样才能得到Redhat8.0支持的所有打印机的驱动程序列表文件,我程序里要用。先谢过
  • 不让用户选择文件,程序指定本地文件,Java可以实现上传到服务器吗?
  • 在JSP文件中如何用程序指定,其它Frame载入文件???
  • 想找一个java 做的文件下载程序(最好用URL类吧),那位有这方面的程序或代码?100分必送
  • 请教:在程序中创建文件夹,应该用什么函数?怎么判断文件夹存不存在呢?
  • Linux下写服务程序,程序可以使用配置文件动态链接库吗?
  • ftp连接下无法删除程序生成的文件(cache文件)
  • 我自己写了个程序 程序依赖很多的动态联接库 如何发布这些库文件
  • 请问在jsp中如何实现相对路径?我在jsp文件中指定相对路径的文件,可是程序找不到!
  • applet可否读取本地gif文件?有没有什么方法?
  • 可否用按钮调用SML文件,然后将运行的结果显示出来?
  • 谁有苹果电脑,可否把你电脑中的rom文件发给我!谢谢了
  • 请问linux下的patch文件可否直接查看
  • LINUX编程关于文件描述符和FILE *指针可否从一个进程传递给另一个进程的问题 iis7站长之家
  • 一个C文件可否调用另一个c文件中的函数?
  • 可否将网页文件的源代码作为String一次性读入吗?
  • 图片文件可否保存在数据库中。
  • 两个Java文件在一个JVM中,可否访问同一个动态链接库?
  • LINUX编程关于文件描述符和FILE *指针可否从一个进程传递给另一个进程的问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ I/O 成员 eof():如果处于文件结尾处则返回true
  • Shell脚本如何递归现实一个文件夹中的文件(文件夹中含有文件夹)
  • WinDows8最新版文件夹加密
  • 求命令:什么命令可以把文件夹下所有的文件按修改时间先后排出来,包括子文件夹里的文件。
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • [提问]Linux下如何把多个.a文件编译一个.so文件,或者把多个.so文件编译成一个.so文件
  • python异常信息堆栈输出到日志文件
  • 请问:proc中的头文件中能包含头文件吗?(感觉如果头文件中包含头文件的话,在链接时就会有错误啊)
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 我要实现当进程打开文件时,根据文件名判断是否符合要求,符合后处理文件,再把文件返回给进程,怎么实现啊
  • 在MyEclipse中设开启xml文件自动提示和自动完成功能
  • vi 中编辑两个文件,怎样从其中一个文件拷一段内容到另一个文件中。(同时打开两个文件)
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 怎么统计一个文件夹下有多少个文件(不包括文件夹)
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • linux 下的 .a 文件 .o 文件 是什么文件?各有什么作用?
  • MyEclipse如何查看和设置文件编码格式相关操作
  • 如何用socket一次传输多个文件,如何确定文件一个文件结束
  • 使用libpcap读取tcpdump抓取的文件并解析c代码实例
  • 如何删除某个目录下除了指定文件夹之外的所有文件和文件夹
  • 设置sharepoint 2010文档库中的 pdf文件在浏览器中访问的打开方式
  • solaris文件系统删除文件后文件夹大小不变


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3