Linux上执行“man raise”,即可看到两者的区别:

 

函数raise

函数kill

函数性质

LIBC库函数,

raise基于系统调用kill或tgkill(如果内核支持)实现

系统调用,不是LIBC库函数

单线程程序

raise(sig)效果等同kill(getpid(), sig)

 

多线程程序

raise(sig)效果等同pthread_kill(pthread_self(), sig)

 

 

在多线程程序中,进程给自己发SIGTERM信号退出,应当调用“kill(getpid(), SIGTERM)”,而不是“raise(SIGTERM)”。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-21
  • 2022-12-23
  • 2021-08-11
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-08-23
  • 2021-12-13
  • 2021-04-04
  • 2021-04-20
  • 2021-06-28
  • 2022-02-02
相关资源
相似解决方案