可以用函数 signal 注册一个信号处理函数,原型为:

	#include <signal.h>
	typedef void(*sighandler_t)(int);	//函数指针 void (*)(int a)
	sighandler_t signal(int signum, sighandler_t handler);

  signal 的第 1 个参数 signum 表示要捕捉处理的信号,第 2 个参数是个函数指针,表示对该信号进行捕捉处理的函数,该参数也可以是 SIG_DFL(表示交由系统默认处理,相当于白注册了)或 SIG_IGN(表示忽略掉该信号而不做任何处理)。signal 如果调用成功,返回该信号处理函数的地址,否则返回 SIG_ERR。
  sighandler_t 类型的形参(函数指针)指向一个信号处理函数,由 signal 函数注册,注册以后,在整个进程运行过程中均有效,并且对不同的信号可以注册同一个信号处理函数。该函数只有一个整型参数,表示信号值。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐