首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++:Interix信号

C++:Interix信号
EN

Stack Overflow用户
提问于 2011-01-20 03:48:59
回答 2查看 1.3K关注 0票数 11

如何在Interix平台上编译/使用信号?我无法编译它,因为Interix似乎是非POSIX兼容的,至少在它的实现方面是这样的。

如果有人找到了解决这个问题的方法,并允许在Interix上编译带有信号的代码,请让我知道怎么做!

谢谢。

详细信息:

遗留软件C,C++,并建立在Linux和Interix上(用于Win XP)。

在编译过程中,我只在Interix上得到以下错误;在添加pthreadsignal代码之后,在Linux上没有得到这些错误。不能在没有信号的情况下使用pthreads,因为与Xmotif冲突(编译,但在运行时崩溃)。

由于结构差异而产生的错误:

代码语言:javascript
复制
`struct siginfo' has no member named `si_value'
aggregate `sigval val' has incomplete type and cannot be defined
`struct sigaction' has no member named `sa_sigaction'

因未申报而产生的错误:

代码语言:javascript
复制
`sigqueue' undeclared
`SA_NODEFER' undeclared
`SA_SIGINFO' undeclared

查阅的其他材料:

http://www.mail-archive.com/bug-gnulib@gnu.org/msg10425.html

002eh.html

http://en.wikipedia.org/wiki/Interix

http://www.opengroup.org/susv3xbd/signal.h.html

EN

回答 2

Stack Overflow用户

发布于 2012-01-23 14:21:34

根据POSIX规范,那里的struct sigaction没有成员sa_sigaction,它有sa_handler

  • POSIX:http://pubs.opengroup.org/onlinepubs/009695399/functions/sigaction.html
  • Interix:http://www.suacommunity.com/man/2/sigaction.2.html

在这种情况下,Interix是符合POSIX的,而您正在移植的代码则不是。

请注意,可以让Linux与sa_handler一起工作。

不过,您可能可以使用正确的#DEFINE来使其工作。

票数 1
EN

Stack Overflow用户

发布于 2011-01-27 02:40:01

请参阅上面的Interix手册页和开放组链接。

您可以将si_sigaction替换为sa_handler。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4743257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档