google到几个结果,例如这里
http://blog.sina.com.cn/s/blog_8fe1688b0101coll.html
看了之后感觉有问题,malloc本身不可重入,在可重入函数中调用不可重入函数明显不合适,我也没想到什么好办法,特来求助于大家
求教可重入putenv_r函数的写法
-
- 帖子: 61
- 注册时间: 2012-12-07 15:53
- 系统: ubuntu12.04
-
- 帖子: 47
- 注册时间: 2013-11-02 21:09
- 系统: Ubuntu
Re: 求教可重入putenv_r函数的写法
那个链接是靠mutex锁/解锁实现可重入啊。
-
- 帖子: 61
- 注册时间: 2012-12-07 15:53
- 系统: ubuntu12.04
Re: 求教可重入putenv_r函数的写法
如果putenv_r在调用malloc时有其他线程或者信号处理函数不等待锁而直接调用malloc类的函数呢,这样一个malloc调用打断另一个malloc调用,这样不就出错了。maxiaojun0 写了:那个链接是靠mutex锁/解锁实现可重入啊。
另外我觉得他那个锁是为了保护环境指针的,而不是保护malloc调用的,如果是保护malloc调用,那岂不是进程中的所用线程在调用malloc类函数时都要先加锁了,那是不是有点麻烦了