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

free函数引发的问题

    来源: 互联网  发布时间:2016-02-01

    本文导语:  在free的时候,如果有信号发生,会进入信号处理函数,如果在信号处理函数中还要free会出现问题吗?我现在好像出现阻塞得问题.不知道为什么. | free函数是不可冲入的。 | 信号处...

在free的时候,如果有信号发生,会进入信号处理函数,如果在信号处理函数中还要free会出现问题吗?我现在好像出现阻塞得问题.不知道为什么.

|
free函数是不可冲入的。

|
信号处理函数中又需要释放别的内存

-----------------------------------
如果你申请得到的内存还存在的话,free()是没有问题。。。
也就是说在释放内存时候加已判断下!

|
在大部分系统中,malloc 和 free 都不是可重入的,因为它们使用静态数据结构来记录哪些内存块是空闲的。实际上,任何分配或释放内存的库函数都是不可重入的。这也包括分配空间存储结果的函数。

避免在处理器分配内存的最好方法是,为信号处理器预先分配要使用的内存。避免在处理器中释放内存的最好方法是,标记或记录将要释放的对象,让程序不间断地检查是否有等待被释放的内存。不过这必须要小心进行,因为将一个对象添加到一个链并不是原子操作,如果它被另一个做同样动作的信号处理器打断,那么就会“丢失”一个对象。不过,如果您知道当信号可能到达时,程序不可能使用处理器那个时刻所使用的流,那么就是安全的。如果程序使用的是某些其他流,那么也不会有任何问题。
来自:
http://www.ibm.com/developerworks/cn/linux/l-reent.html

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • free 和malloc的问题
  • Free Java的初始设置问题----初学者求教.
  • 请教一个Free BSD的图形界面问题!
  • 100分!free后内存回收问题
  • free bsd问题!高分!
  • not enough free disk space on /tmp,这个问题如何解决,(100分)
  • 问个__get_free_pages的问题
  • 关于FREE JAVA3.0的使用!菜鸟问题!!
  • free问题,麻烦大家给指点一下。代码在文章内容中
  • 编译问题 undefined reference to `mysql_free_result'
  • free()时出错,大家帮我看看代码哪里出问题了
  • 问题求教:内核启动时卡在Freeing init memory:
  • java命名空间java.sql接口array的类成员方法: free定义及介绍
  • 用gdb查错,发现一个由free引起的段错误,但我的代码(c++)中根本没有用到free啊?
  • java命名空间java.sql接口clob的类成员方法: free定义及介绍
  • 请问为什么会出现glibc detected *** free()?
  • java命名空间java.sql接口blob的类成员方法: free定义及介绍
  • free_irq为什么失败?
  • java命名空间java.sql接口sqlxml的类成员方法: free定义及介绍
  • XML编辑器 Serna Free
  • java命名空间javax.sql.rowset.serial类serialblob的类成员方法: free定义及介绍
  • Free Chart Geany
  • java命名空间javax.sql.rowset.serial类serialclob的类成员方法: free定义及介绍
  • double free or corruption(out)
  • java命名空间javax.swing.plaf.metal类metalscrollbarui的类成员方法: free_standing_prop定义及介绍
  • 最近程序老是在malloc或者free内存的时候崩溃或者失去响应,请教高手。
  • linux下free命令显示的内存使用情况分析
  • free出错
  • 可以用free来释放共享内存吗?
  • Avast Free Antivirus
  • 日志文件分析工具 Free-SA


  • 站内导航:


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

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

    浙ICP备11055608号-3