1

私は sigalstack 構造体を使用しています。詳細は次のとおりです。

こちら(MAC OSX)

こちら(Linux)

そう宣言してるだけ

struct sigaltstack aa;

そして、私は次のエラーが発生し続けます

error: storage size of ‘aa’ isn’t known

「名前」のストレージサイズは不明ですが、宣言しているだけなので、実際には当てはまりません。

4

2 に答える 2

1

そのような初期化されていない代替スタックを使用することはできません。そのフィールドにスタック用のスペースを割り当て、そのss_spフィールドに対応するサイズを設定する必要がありss_sizeます。

リンクした man7 リンクには、これに関する詳細情報があります。実際、ページの下部に例を示します。

stack_t ss;

ss.ss_sp = malloc(SIGSTKSZ);
if (ss.ss_sp == NULL)
    /* Handle error */;
ss.ss_size = SIGSTKSZ;
ss.ss_flags = 0;
if (sigaltstack(&ss, NULL) == -1)
    /* Handle error */;

それが役立つことを願っています。

于 2013-04-09T04:02:24.453 に答える