Solaris プラットフォームにいくつかのレガシー コードがあり、それを Linux に移植したいと考えていますが、Linux でコンパイル エラーが発生します。Solaris では、次のコード スニペットがあります。
#include <signal.h>
...
void f() {
struct sigaction a;
sigaction(sig,0,&a);
std::cout << (void *) a.sa_handler
<< ", " << (void *) a.sa_sigaction
<< ", " << a.sa_mask.__sigbits[0]
<< ", " << a.sa_mask.__sigbits[1]
<< ", " << a.sa_mask.__sigbits[2]
<< ", " << a.sa_mask.__sigbits[3]
<< ", " << (void *) a.sa_flags
<< std::endl;
}
gcc 4.9.2 を使用して Linux でコンパイルしようとすると (Solaris では正常にコンパイルされます)、次のコンパイル エラーが発生します。
error: struct __sigset_t has no member named __sigbits
<< ", " << a.sa_mask.__sigbits[0]
... __sigbits[1]
、__sigbits[2]
、__sigbits[3]
についても同様です。
Linuxに同等のものはありますか?