免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6743 | 回复: 14
打印 上一主题 下一主题

[函数] 问一个关于中断中的函数的问题。谢谢。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-05-19 17:53 |只看该作者 |倒序浏览
题目大概意思。此函数为一个中断中的函数,看看有什么问题?

double a(double b)
{
       double c = pi * b *b;
       printf("%f", c);
       return c;
}

论坛徽章:
0
2 [报告]
发表于 2010-05-19 18:05 |只看该作者
调用printf()会造成中断重入,一些系统禁止中断重入。

论坛徽章:
0
3 [报告]
发表于 2010-05-19 22:40 |只看该作者
不懂,关注

论坛徽章:
0
4 [报告]
发表于 2010-05-20 01:18 |只看该作者
printf 是不可重入函数啊,在中断中调用不好滴

论坛徽章:
0
5 [报告]
发表于 2010-05-20 02:51 |只看该作者
为什么不是printk呢?

论坛徽章:
0
6 [报告]
发表于 2010-05-20 08:41 |只看该作者
问题太多, 有返回值 有参数  用了浮点 用了乘运算 用了printf{:3_186:}

论坛徽章:
0
7 [报告]
发表于 2010-05-20 08:42 |只看该作者
这种题目不是考linux的 @@
所以下面的几点解释有点不符合常理 呵呵:
有浮点操作  中断服务程序最好不要有浮点操作  ,会增加处理时间,而中断处理时间越短越好
printf是不可重入的
中断服务程序没有返回值,并且不要带参数

论坛徽章:
0
8 [报告]
发表于 2010-05-23 11:34 |只看该作者
这种题目不是考linux的 @@
所以下面的几点解释有点不符合常理 呵呵:
有浮点操作  中断服务程序最好不 ...
1226ehziy 发表于 2010-05-20 08:42

又积累知识了!!

论坛徽章:
0
9 [报告]
发表于 2010-05-23 21:09 |只看该作者
中断函数不能有输入参数;
中断函数不能调用会引起阻塞的函数;比如获取信号量、自旋锁之类的函数;一些会引起阻塞的C库函数也不能调用,比如malloc,printf等。
中断函数在进入的时候,是不保存浮点寄存器的值的,如果中断函数里如果使用了浮点数,会把被中断函数正在用的浮点寄存器的内容覆盖掉。被中断函数会出错的;
中断函数不能有返回值;

论坛徽章:
0
10 [报告]
发表于 2010-05-24 12:57 |只看该作者
中断函数不能有输入参数;
中断函数不能调用会引起阻塞的函数;比如获取信号量、自旋锁之类的函数;一些会引起 ...
star1983653 发表于 2010-05-23 21:09

求教几个问题:1:这里的中断函数指的是信号处理函数吗?如果不是的话什么时候会用到中断函数?
2:malloc,printf等函数会引起阻塞吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP