BBS水木清华站∶精华区
发信人: althea (痛并快乐着~~向日葵), 信区: Linux
标 题: Re: 请教:linux的信号系统调用
发信站: BBS 水木清华站 (Fri Jan 7 11:10:15 2000)
【 在 lylwps (tuantuan) 的大作中提到: 】
∶ 我编写了如下一端用户态程序:
∶ main()
∶ {.......
∶ old_handler=signal(SIGUSR1,my_handler);
∶ ioctl(fd,READDISK,arg_cmd);
∶ pause();
∶ }
∶ my_handler()
∶ {
∶ ioctl(fd,GETDATA,arg_buf);
∶ signal(SIGUSR!,old_handler);
∶ }
∶ 在内核中自定义的READDISK接受命令并启动硬件执行后结束.
∶ 当硬件操作完中断响应中,向用户进程发SIGUSR1,用户用GETDATA取数据.
∶ 执行结果有时用户进程可以返回,有时处于挂起状态,但可以用kill结束它.
∶ 为何是这样的,请指点.
∶ --
也许是在pause之前就收到SIGUSR1的信号
--
※ 来源:·BBS 水木清华站 smth.org·[FROM: 162.105.179.13]
BBS水木清华站∶精华区