プロが教える店舗&オフィスのセキュリティ対策術

よろしくお願いします。
SunOS5.6ではCプログラムで以下の関数がメイクで未定義のシンボルとしてエラーになってしまいます。
sigblock()
sigmask()
sigsetmask()

SunOS5.8ならば問題なくメイク可能なのですが、SunOS5.6ではどれかのLIBをリンクしなければならないのでしょうか?
それともこれらの関数は実装されていないのでしょうか。

A 回答 (2件)

コンパイルが通って


リンクでエラーになってるから
必要なLIBがリンク時に参照されていないということなんでしょうね。
    • good
    • 0
この回答へのお礼

その通りです。ucbというLIBをリンクして解決しました。ありがとうございます。

お礼日時:2004/11/11 18:41

#include <signal.h>


はしてるんですよね。
signal.hを検索して
その中で
実際に定義されているか調べてみてはどうでしょうか?

また
signal.hにない場合(ちょっと考えにくいですが)
関数名で*.hをgrepしてみてはどうでしょう?

この回答への補足

早速の回答ありがとうございます。助かります。

/usr/include/sys/signal.hにsigmask()だけはありました。

実行はこんなかんじです。
>more r.c
#include <stdio.h>
#include <sys/signal.h>
main()
{
sigblock( sigmask( SIGALRM ) );
sigsetmask( sigmask( SIGALRM ) );
}

>/opt/SUNWspro/bin/cc -g r.c -o mdl
未定義の 最初に参照している
シンボル ファイル
sigmask r.o
sigsetmask r.o
sigblock r.o
ld: 重大なエラー: シンボル参照エラー。mdl に書き込まれる出力はありません
>

補足日時:2004/11/11 16:56
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!