您的位置 首页 编程

什么是可重入函数和不行重入函数

可重入函数在实时系统的设计中,经常会出现多个任务调用同一个函数的情况。如果这个函数不幸被设计成为不可重入的函数的话,那么不同任务

可重入函数

在 实时体系的规划中,常常会呈现多个使命调用同一个函数的状况。假如这个函数不幸被规划成为不行重入的函数的话,那么不同使命调用这个函数时或许修正其他任 务调用这个函数的数据,然后导致不行意料的结果。那么什么是可重入函数呢?所谓可重入是指一个能够被多个使命调用的进程,使命在调用时不用忧虑数据是否会 犯错。不行重入函数在实时体系规划中被视为不安全函数。

满意下列条件的函数多数是不行重入的:

(1)函数体内运用了静态的数据结构;

(2)函数体内调用了malloc()或许free()函数;

(3)函数体内调用了规范I/O函数。

怎么写出可重入的函数?在函数体内不拜访那些全局变量,不运用静态局部变量,坚持只运用缺省态(auto)局部变量,写出的函数就将是可重入的。假如有必要拜访全局变量,记住运用互斥信号量来维护全局变量。或许调用该函数前关中止,调用后再开中止。

可重入函数能够被一个以上的使命调用,而不用忧虑数据被损坏。可重入函数任何时候都能够被中止,一段时间今后又能够运转,而相应的数据不会丢掉。可重入函数或许只运用局部变量,即保存在CPU寄存器中或仓库中;或许运用全局变量,则要对全局变量予以维护。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/256353.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部