位置: 编程技术 - 正文
推荐整理分享Linux 中可重入函数与不可重入函数详解(linux conky),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:linux重定义,linux重定向到null,linux重载,linux重载,linux重定义,linux可重入函数,linux可重入函数,linux重定义,内容如对您有帮助,希望把文章链接给更多的朋友!
Linux 中可重入函数与不可重入函数详解
可重入函数和不可重入函数说起来有点拗口,其实写过多进程(线程)程序的人肯定很快就能明白这两种函数是个神马东西。下面是我对这两个函数的理解:
可重入函数可以理解为是能被中断的函数,并且它被中断返回后也不会出现什么错误。
不可重入函数可以理解为如果函数被中断的话,就会出现不可预料的错误。这是因为函数中使用了一些系统资源,比如全局变量区,中断向量表之类的。比如多个进程同时对一个文件进行写操作,如果没有同步机制的话,对文件的写入就会变得难以控制。
在多进程(线程)环境中一定要考虑到函数的可重入性。
例如下面的例子:
这段代码中使用了static关键字,如果多个进程同时执行这一段代码的话就会出现不可预测的结果。在可重入函数中,一定要避免使用static变量。或者需要使用一定的同步原则才可以。
要想将上面的代码改为可重入函数,只要将static变量改为非static的变量就可以了。
在编写可重入函数时,如果函数中使用到了全局变量,则应通过关中断、信号量(即P、V操作)等手段对其加以保护,在函数体中尽量使用局部变量。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
linux 下实现sleep详解及简单实例 linux下实现sleep详解及简单实例sleep:普通版本1、基本设计思路:1注册SIGALRM信号的处理函数;2调用alarm(nsecs)设定闹钟;3调pause等待,内核切换到别的进程
使用ntpdate工具校正linux服务器时间(实现方法) 当Linux服务器的时间不对的时候,可以使用ntpdate工具来校正时间。安装:yuminstallntpdatentpdate简单用法:#ntpdateip#ntpdate...以下是一些可用的NTP服务
Linux bash删除文件中含“指定内容”的行功能示例 本文实例讲述了Linuxbash删除文件中含指定内容的行功能。分享给大家供大家参考,具体如下:#!/bin/sh#功能:删除文件中含"指定内容"的行#运行方式:./dline.
标签: linux conky
本文链接地址:https://www.jiuchutong.com/biancheng/376744.html 转载请保留说明!友情链接: 武汉网站建设