可重入函数和不可重入函数
Posted mered1th
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可重入函数和不可重入函数相关的知识,希望对你有一定的参考价值。
个函数在被调用执行期间(尚未调用结束),由于某种时序又被重复调用,称之为“重入”。根据函数实现的方法可分为“可重入函数”和“不可重入函数”两种。看如下时序。
显然,insert函数是不可重入函数,重入调用,会导致意外结果呈现。究其原因,是该函数内部实现使用了全局变量。
注意事项
定义可重入函数,函数内不能含有全局变量及static变量,不能使用malloc、free
信号捕捉函数应设计为可重入函数
信号处理程序可以调用的可重入函数可参阅man 7 signal
没有包含在上述列表中的函数大多是不可重入的,其原因为:
a) 使用静态数据结构
b) 调用了malloc或free
c) 是标准I/O函数
以上是关于可重入函数和不可重入函数的主要内容,如果未能解决你的问题,请参考以下文章