求助!会者不难,难者不会

C、C++和Java语言
回复
头像
蝴蝶兰
帖子: 202
注册时间: 2006-04-18 10:13
来自: china
送出感谢: 0
接收感谢: 0
联系:

求助!会者不难,难者不会

#1

帖子 蝴蝶兰 » 2010-10-28 8:44

我有一测试程序,获得一系列键盘输入后结束,类似于:
main()
{
getchar();
getchar();
getchar();
}
编译后生成a.out,
问题是:我使用一台终端(实达、昌霖等的网络终端)用Telnet登录主机后执行该程序,在键盘输入之前将终端关闭!这时在主机上还可看到该终端的这些进程,有什么办法使测试程序得知发生意外而主动关闭,求助!
ps -t 1
PID TTY TIME CMD
6118 pts/1 00:00:00 login
6119 pts/1 00:00:00 bash
6137 pts/1 00:00:00 a.out

请看,从login至a.out都没死。
回避问题 = 曲线救国 = 棒槌
头像
linjiework
帖子: 240
注册时间: 2009-07-07 19:52
送出感谢: 0
接收感谢: 0

Re: 求助!会者不难,难者不会

#2

帖子 linjiework » 2010-10-28 10:09

你可以查一下信号,有可能在终端关闭的时候给进程发送某个信号。
阿呆 : 天下第一呆!
头像
蝴蝶兰
帖子: 202
注册时间: 2006-04-18 10:13
来自: china
送出感谢: 0
接收感谢: 0
联系:

Re: 求助!会者不难,难者不会

#3

帖子 蝴蝶兰 » 2010-10-28 10:59

实事上程序没有收到任何信号。我是直接将终端电源关闭的。
终端开着时,我将网线拔出一段时间,它还是继续正常工作。
我的目的就是获得终端异常关闭、网络断开时我的程序能够得知并进行处理。
回避问题 = 曲线救国 = 棒槌
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
送出感谢: 0
接收感谢: 7 次
联系:

Re: 求助!会者不难,难者不会

#4

帖子 BigSnake.NET » 2010-11-03 21:24

这个就终端的处理问题了....

理论上会发送 SIGHUP 然后默认全部挂掉
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
蝴蝶兰
帖子: 202
注册时间: 2006-04-18 10:13
来自: china
送出感谢: 0
接收感谢: 0
联系:

Re: 求助!会者不难,难者不会

#5

帖子 蝴蝶兰 » 2010-11-23 15:40

这个问题我早已解决。在CSDN上有我的贴。其实不是什么signel的问题,是keepalive的问题。想信号的问题走了弯路
回避问题 = 曲线救国 = 棒槌
头像
liu滔
帖子: 7211
注册时间: 2010-10-09 23:01
送出感谢: 5 次
接收感谢: 14 次

Re: 求助!会者不难,难者不会

#6

帖子 liu滔 » 2010-11-28 16:52

蝴蝶兰 写了:这个问题我早已解决。在CSDN上有我的贴。其实不是什么signel的问题,是keepalive的问题。想信号的问题走了弯路
不怎么明白的经过,看到这句发现楼主是来欺负我等弱者的,信号什么的还没了解到呢 :em19
delectate
帖子: 18311
注册时间: 2008-01-09 22:41
送出感谢: 0
接收感谢: 6 次

Re: 求助!会者不难,难者不会

#7

帖子 delectate » 2010-11-28 17:07

哦,是“我活着”
回复

回到 “C/C++/Java”