码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-04-21 00:20:13      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:http   free   结果   函数实现   static   根据   包含   sign   src   

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

技术图片

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

注意事项

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

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

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

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

a) 使用静态数据结构

b) 调用了malloc或free

c) 是标准I/O函数

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

标签:http   free   结果   函数实现   static   根据   包含   sign   src   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!