+ -
当前位置:首页 → 问答吧 → 程序进程意外结束跳出,大家帮我看看咋回事

程序进程意外结束跳出,大家帮我看看咋回事

时间:2011-03-08

来源:互联网

代码在附件中。

现象: timer函数初始化完毕后,过了1秒不到, app就会自动结束跳出, 伴随一条"Real-time signal 1”的信息。

对于signal的使用不是很熟,也不清楚问题出在哪里。

/home/app $ ./TmrTest
open SIGRT4_FILEENTRY successfully! //驱动打开
timer init over!   // 定时器初始化完毕
Real-time signal 1    // 这个消息应该是kernel发出的,大约在此程序启动后不到1秒发出。
/home/app $     //程序自动终止


我的环境: VirtualBox, Ubuntu10, Kernel 2.6.30, 超级终端 115200-8-n-1

这几天查了一下,Real-time siganl 1貌似是SIGHUP信号

我查了一下资料,按照此信号的介绍,"SIGHUP: 如果终端接口检测到一个连接断开,则将此信号发送给与该终端相关的控制进程(会话首进程). 见图9-11, 此信号被送给session结构中的s_leader字段所指向的进程。仅当终端的CLOCAL标志没有设置时,在上诉条件下才产生此信号。(如果所连接的终端是本地的,则设置该终端的CLOCAL标志。它告诉终端驱动程序忽略所有调制解调器的状态行。)"                 

我现在的想法是,试着屏蔽掉这个SIGHUP信号。按照上面的描述,需要将CLOCAL标志位置1。请问CLOCAL标志位应该在哪里设置?


Timer Test.rar (10.35 KB)
下载次数: 0
2011-03-08 17:11

作者: fifodct   发布时间: 2011-03-08

本帖最后由 fifodct 于 2011-03-09 16:32 编辑

如果要修改控制台串口ttyS0的参数c_cflag,比如波特率,比如这个CLOCAL flag, 是否应该在busybox的/init/init.c 里改? 这几天好郁闷,没有指路人的话,自己调真难有进展阿。。。

作者: fifodct   发布时间: 2011-03-09