【问题标题】:sigprocmask() causing segfaultsigprocmask() 导致段错误
【发布时间】:2011-01-11 08:33:55
【问题描述】:

在多线程应用程序中使用 sigprocmask() 时,是否有任何众所周知的原因导致段错误?

我有一个使用 clone() 创建多个线程的应用程序。我已经确定,由于某种原因,当我使用 sigprocmask 时,它会出现段错误(尽管并非一直如此)。从 backtrace() 看来,当我在 siglongjmp() 之后使用 sigprocmask() 时,似乎也发生了段错误。

有什么想法吗?

【问题讨论】:

    标签: linux multithreading sigprocmask


    【解决方案1】:

    检查第二个和第三个参数。如果它们不为 NULL,请确保它们都是指向 sigset_t 的有效指针。

    请注意,sigprocmask() 仅为单线程进程正式定义。多线程进程应该改用pthread_sigmask(),尽管它返回错误代码而不是使用errno,但它采用相同的参数。

    【讨论】:

      猜你喜欢
      • 2011-11-02
      • 2015-09-03
      • 2012-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多