可重入与不可重入
来源:互联网 发布:一般程序员懂几种语言 编辑:程序博客网 时间:2024/05/16 09:14
1) 信号处理程序A内外都调用了同一个不可重入函数B;B在执行期间被信号打断,进入A (A中调用了B),完事之后返回B被中断点继续执行,这时B函数的环境可能改变,其结果就不可预料了。 可重入函数列表: _exit()、 access()、alarm()、cfgetispeed()、cfgetospeed()、cfsetispeed()、cfsetospeed ()、chdir()、chmod()、chown()、close()、creat()、dup()、dup2()、execle()、 execve()、fcntl()、fork()、fpathconf ()、fstat()、fsync()、getegid()、 geteuid()、getgid()、getgroups()、getpgrp()、getpid()、getppid()、getuid()、 kill()、link()、lseek()、mkdir()、mkfifo()、 open()、pathconf()、pause()、pipe()、raise()、read()、rename()、rmdir()、setgid ()、setpgid()、setsid()、setuid()、 sigaction()、sigaddset()、sigdelset()、sigemptyset()、sigfillset()、 sigismember()、signal()、sigpending()、sigprocmask()、sigsuspend()、sleep()、 stat()、sysconf()、tcdrain()、tcflow()、tcflush()、tcgetattr()、tcgetpgrp()、 tcsendbreak()、tcsetattr()、tcsetpgrp()、time()、times()、 umask()、uname()、unlink()、utime()、wait()、waitpid()、write()。 书上关于信号处理程序中调用不可重入函数的例子: #include <stdlib.h> signal了一个SIGALRM,而后设置一个定时器,在for函数运行期间的某个时刻,也许就是在getpwnam函数运行期间,相应信号发生中断,进入信号处理函数func,在运行func期间又收到alarm发出的信号,getpwnam可能再次中断,这样就很容易发生不可预料的问题。 |
- 可重入与不可重入
- 可重入与不可重入
- 可重入与不可重入
- 可重入与不可重入
- 可重入与不可重入
- 可重入与不可重入
- 可重入函数与不可重入函数
- 可重入函数与不可重入函数
- 可重入函数与不可重入函数
- 可重入与不可重入函数
- 可重入函数与不可重入函数
- 可重入函数与不可重入函数
- 可重入函数与不可重入函数
- 可重入函数与不可重入函数
- 可重入函数与不可重入函数
- 可重入函数与不可重入函数
- 可重入函数与不可重入函数
- 可重入函数与不可重入函数
- JAVA学习提高之----JAVA EXCEL API及JAVA 操作Excel(二)
- VisiBroker3.3 for Corba在自动化物流上的应用
- 如何用一个数据库的数据去更新另一个数据库的内容 (转)
- 求将图片字段打横显示的交叉表
- 史上体质最牛的人--神行太保 戴宗
- 可重入与不可重入
- 什么是Web Service
- WCF从理论到实践:WCF架构
- Windows系统内核模态和用户模态一点学习心得
- Windows API函数大全
- 关于Chunked编码
- FLEX的.NET开源库FluorineFX
- UNIX 进程揭秘
- 常使用的UNIX命令