zoukankan      html  css  js  c++  java
  • Linux系统编程——可重入函数和不可重入函数

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

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

    注意事项

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

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

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

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

    a) 使用静态数据结构

    b) 调用了malloc或free

    c) 是标准I/O函数

  • 相关阅读:
    扯一扯纯函数
    10.28
    10.27 动手动脑5
    10.26
    10.25 周总结
    10.23
    10.22
    10.21 动手动脑4
    10.20
    10.19
  • 原文地址:https://www.cnblogs.com/Mered1th/p/10743337.html
Copyright © 2011-2022 走看看