📄 00000021.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人: althea (痛并快乐着~~向日葵), 信区: Linux <BR>标 题: Re: 请教:linux的信号系统调用 <BR>发信站: BBS 水木清华站 (Fri Jan 7 11:10:15 2000) <BR> <BR>【 在 lylwps (tuantuan) 的大作中提到: 】 <BR>∶<I> 我编写了如下一端用户态程序: </I><BR>∶<I> main() </I><BR>∶<I> {....... </I><BR>∶<I> old_handler=signal(SIGUSR1,my_handler); </I><BR>∶<I> ioctl(fd,READDISK,arg_cmd); </I><BR>∶<I> pause(); </I><BR>∶<I> } </I><BR>∶<I> my_handler() </I><BR>∶<I> { </I><BR>∶<I> ioctl(fd,GETDATA,arg_buf); </I><BR>∶<I> signal(SIGUSR!,old_handler); </I><BR>∶<I> } </I><BR>∶<I> 在内核中自定义的READDISK接受命令并启动硬件执行后结束. </I><BR>∶<I> 当硬件操作完中断响应中,向用户进程发SIGUSR1,用户用GETDATA取数据. </I><BR>∶<I> 执行结果有时用户进程可以返回,有时处于挂起状态,但可以用kill结束它. </I><BR>∶<I> 为何是这样的,请指点. </I><BR>∶<I> -- </I><BR>也许是在pause之前就收到SIGUSR1的信号 <BR> <BR>-- <BR>※ 来源:·BBS 水木清华站 smth.org·[FROM: 162.105.179.13] <BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -