如何在Interix平台上编译/使用信号?我无法编译它,因为Interix似乎是非POSIX兼容的,至少在它的实现方面是这样的。
如果有人找到了解决这个问题的方法,并允许在Interix上编译带有信号的代码,请让我知道怎么做!
谢谢。
详细信息:
遗留软件C,C++,并建立在Linux和Interix上(用于Win XP)。
在编译过程中,我只在Interix上得到以下错误;在添加pthread和signal代码之后,在Linux上没有得到这些错误。不能在没有信号的情况下使用pthreads,因为与Xmotif冲突(编译,但在运行时崩溃)。
由于结构差异而产生的错误:
`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'因未申报而产生的错误:
`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
发布于 2012-01-23 14:21:34
根据POSIX规范,那里的struct sigaction没有成员sa_sigaction,它有sa_handler。
在这种情况下,Interix是符合POSIX的,而您正在移植的代码则不是。
请注意,可以让Linux与sa_handler一起工作。
不过,您可能可以使用正确的#DEFINE来使其工作。
发布于 2011-01-27 02:40:01
请参阅上面的Interix手册页和开放组链接。
您可以将si_sigaction替换为sa_handler。
https://stackoverflow.com/questions/4743257
复制相似问题