[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freewnn:00149] time_t




古川竜雄です。

[freewnn:00134]にて:
古川>>> error.c:101: warning: passing arg 1 of `localtime' from incompatible
古川>>> pointer type
古川>>> error.c:113: warning: passing arg 1 of `localtime' from incompatible
古川>>> pointer type

古川> これは
古川>	      asctime(localtime(&obakenoQ)),
古川>
古川> の部分ですね。ちなみに obakenoQ (なんつー変数名だ) は
古川>
古川>  long obakenoQ;
古川>
古川> ですね。

古川>localtime() の関数プロトタイプを見せてもらえませんか? 具体的には


[freewnn:00137]にて:

にしくさん>   localtime(const time_t *clock);

なるほど。"time_t *" なんですね。私の Linux も "time_t *" でした。man 
によれば

man> CONFORMING TO
man>        SVID 3, POSIX, BSD 4.3, ISO 9899

とのことなので、標準(もしくは大多数)は "time_t *" のようですね。…とい
うわけで、time_t を積極的に使うように変更してみました。
 
# time_t に限らず、今後もこういう OS 間でのすりあわせが発生すると思う
# ので、一度標準を見てみたいのですが、規格書以外に何かないですかね? プ
# ロトタイプと、できればどういう動作をしてどのような値を返すかがわかれ
# ばいいのですが。

time_t が定義されていない OS では long がかわりに使われるようになって
います。(この処理は configure が自動的に行ないます。)

これで多分大丈夫だと思います。

time_t を使うところは他にもあるかもしれませんが、とりあえずピンポイン
トで対処してみました。


[freewnn:00135]にて:

元木さん> time_t が無い環境でテストしてないですが、以下で実現できると
元木さん> 思います。
元木さん> AC_CHECK_TYPE (time_t, long)

アドバイスありがとうございます。バッチリでした。(^_^)v

ちなみに私の環境でも time_t はあったのですが、以下でテストできました。

    AC_CHECK_TYPE (ttime_t, long)
                   ↑
          タイプミスではありません

-- 
古川竜雄 (frkwtto@osk3.3web.ne.jp) / FreeWnn Project