1

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に同等のものはありますか?

4

1 に答える 1