windows 平台的信号处理

windows 平台也是有信号处理接口的,而且与 unix 平台很相似。void (__cdecl *signal(int sig, void (__cdecl *func ) (int [, int ] ))) (

windows 平台也是有信号处理接口的,而且与 unix 平台很相似。

void (__cdecl *signal(
   int sig, 
   void (__cdecl *func ) (int [, int ] ))) 
   (int);

不过支持的信号类型有限,只有下面这几种。

sig value

Description

SIGABRT

Abnormal termination

SIGFPE

Floating-point error

SIGILL

Illegal instruction

SIGINT

CTRL+C signal

SIGSEGV

Illegal storage access

SIGTERM

Termination request

windows信号处理函数是这一个新的 crt 线程执行的,该线程优先级较高,会先于普通线程被调度。

根据MSDN文档,SIGILL、SIGEGV、SIGTERM 在 NT 平台并不支持,但是可以通过 raise 接口触发。所以真正有用的只有SIGINT,也就是Ctrl + C,可以处理这个信号让进程正常退出。

 

发布者:admin,转转请注明出处:http://www.yc00.com/web/1754101181a5118861.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信