ChinaUnix.net
相关文章推荐:

reentrant

由于cublog系统的缘故,将前段时间写的一篇blog文章再次贴上。 可重入函数这一概念早有接触,但一直未有系统的理解,最近阅读《APUE》信号一章时,其中讲解很到位,故总结如下。 信号作为一种软中断,能够被进程给捕获,因而也就中断进程的正常执行,转而去执行信号处理程序,最后再返回到原进程继续正常执行。然而,当进程正在执行malloc()动态内存分配时,信号产生从而转入到信号处理程序,但当信号处理程序中也用到了malloc()函...

by haitao-andy - Linux文档专区 - 2007-06-16 21:14:34 阅读(1436) 回复(0)

相关讨论

请教:编译选项 -D_LIBC_reentrant 和 -D_reentrant 有什么不同?谢谢

by smallbear_2008 - Linux环境编程 - 2009-11-04 19:23:15 阅读(3125) 回复(3)

记得以前讨论过一个关于reentrant函数与thread safe函数的帖子 很多人对于这两种函数不是很了解, 尤其是发现malloc等函数是non-reentrant函数时,对多线程编程都产生了"恐惧" 这里是我对这两种函数的一些理解,希望和大家探讨一些.欢迎批评指正. 1. reentrant函数 一个函数是reentrant的,如果它可以被安全地递归或并行调用。要想成为reentrant式的函数,该函数不能含有(或使用)静态(或全局)数据(来存储函数调用过程中的状态信息),...

by ypxing - C/C++ - 2011-04-26 02:00:32 阅读(18381) 回复(27)

[Macro] _reentrant [Macro] _THREAD_SAFE If you define one of these macros, reentrant versions of several functions get declared. Some of the functions are specified in POSIX.1c but many others are only available on a few other systems or are unique to GNU libc. The problem is the delay in the s...

by peidright - C/C++ - 2010-06-28 11:47:14 阅读(3033) 回复(4)

我记得在linux程序设计一书中说多线程编程为了保证函数的可重入性,需要在编译是定义reentrant宏,但我在工作中很少见这样做,是不是编译器已经帮我们做了可重入性的工作了??另外什么时候要加上POSIX_C_SOURCE宏?谢谢。

by jingzitakk66 - Linux环境编程 - 2010-04-29 15:51:14 阅读(1377) 回复(0)

可重入(reentrant):函数被同时调用时,每个调用访问独立的数据。 线程安全(thread-safe ):函数被同时调用时,每个调用访问共享数据,但是访问被序列化了(通过加锁等手段)。 例如: 可重入: int get_value() { int iRet = what_you_want(); return iRet; } 线程安全: int g_value; int get_value() { return someMUTEX(g_value); }

by jediii - C/C++ - 2009-07-20 14:09:01 阅读(2979) 回复(6)

编译多线程程序是否一定要加: -D_reentrant 编译选项? linux下好象不需要加??

by redac - C/C++ - 2007-05-16 16:20:51 阅读(7024) 回复(6)