求教可重入putenv_r函数的写法

软件和网站开发以及相关技术探讨
回复
Jusong
帖子: 61
注册时间: 2012-12-07 15:53
系统: ubuntu12.04

求教可重入putenv_r函数的写法

#1

帖子 Jusong » 2013-11-02 10:43

google到几个结果,例如这里
http://blog.sina.com.cn/s/blog_8fe1688b0101coll.html
看了之后感觉有问题,malloc本身不可重入,在可重入函数中调用不可重入函数明显不合适,我也没想到什么好办法,特来求助于大家
maxiaojun0
帖子: 47
注册时间: 2013-11-02 21:09
系统: Ubuntu

Re: 求教可重入putenv_r函数的写法

#2

帖子 maxiaojun0 » 2013-11-02 22:33

那个链接是靠mutex锁/解锁实现可重入啊。
Jusong
帖子: 61
注册时间: 2012-12-07 15:53
系统: ubuntu12.04

Re: 求教可重入putenv_r函数的写法

#3

帖子 Jusong » 2013-11-03 10:04

maxiaojun0 写了:那个链接是靠mutex锁/解锁实现可重入啊。
如果putenv_r在调用malloc时有其他线程或者信号处理函数不等待锁而直接调用malloc类的函数呢,这样一个malloc调用打断另一个malloc调用,这样不就出错了。
另外我觉得他那个锁是为了保护环境指针的,而不是保护malloc调用的,如果是保护malloc调用,那岂不是进程中的所用线程在调用malloc类函数时都要先加锁了,那是不是有点麻烦了
回复