首页 > 其他 > 详细

可重入函数和不可重入函数

时间:2019-04-21 00:15:27      阅读:174      评论:0      收藏:0      [点我收藏+]

个函数在被调用执行期间(尚未调用结束),由于某种时序又被重复调用,称之为“重入”。根据函数实现的方法可分为“可重入函数”和“不可重入函数”两种。看如下时序。

技术分享图片

显然,insert函数是不可重入函数,重入调用,会导致意外结果呈现。究其原因,是该函数内部实现使用了全局变量。

注意事项

  1. 定义可重入函数,函数内不能含有全局变量及static变量,不能使用malloc、free

  2. 信号捕捉函数应设计为可重入函数

  3. 信号处理程序可以调用的可重入函数可参阅man 7 signal

  4. 没有包含在上述列表中的函数大多是不可重入的,其原因为:

a) 使用静态数据结构

b) 调用了malloc或free

c) 是标准I/O函数

可重入函数和不可重入函数

原文:https://www.cnblogs.com/Mered1th/p/10743337.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!