linux中可重入函数、不可重入函数

6 篇文章 1 订阅

https://www.linuxidc.com/Linux/2015-02/113520p13.htm

 

跟线程安全, 可嵌套运行,线程变量安全性 这些概念无关,

可重入/不可重入只针对系统函数对中断处理方式:

         可重入:  无需关心期间发生了中断,也无法知道。

         不可重入: 发生中断后, 返回 -1 + errno=EINTR  

 

根据中断原理,  中断只发生在2个位置,第一个位置是 内核/用户切换时, 第二个是 系统函数只有内部有sleep(pause, wait )  调用, 或者内部有用户态的回调函数( ??? ),才会在处理过程中被中断。 第一种情形是刚进入系统函数( 系统函数代码还没有开始执行) ,或者已经执行完成准备要退出切换到用户态,  所以这个中断不会影响到系统函数的。 而第2种情形,会导致系统函数用到的全局变量数据不可靠,所以才是不可重入函数的,这基本都是跟资源类有关的系统函数,或者涉及锁机制、涉及等候的函数,。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值