12
#include <stdio.h>
#include <time.h>

int main()
{
     printf("Size of time_t is %lu bytes.\n", sizeof(time_t));
     time_t biggest = 0x7fffffffffffffff;   // line 1
     printf("time_t's wrap around will be a second after %s.\n", asctime(gmtime(&biggest)) );

     return 0;
}

time.h では、これは time_t の定義ですか?

typedef  __darwin_time_t   time_t

どう解釈する?よくわからないので、 sizeof 関数を使って time_t = 8 バイトを見つけました。

なぜ1行目でエラーが発生するのですか? このエラーが発生しています

Segmentation fault: 11
4

4 に答える 4

7

への呼び出しgmtime()はおそらく返さNULLれます (私の Mac OS X システムでは返されます)。この値を に渡すとasctime()、例外が発生します (非NULLポインタが必要なため)。

すべてのtime_t値を で表現できるわけstruct tmではないため、この場合は がgmtime()返されます。NULL

于 2012-07-31T20:24:30.197 に答える
3

基になるタイプはtime_t何でもかまいません。それはあなたのシステムに大きく依存します。同様の質問を参照してください:time_tとはどのプリミティブデータ型ですか?

スレッドには、 sys/types.hの説明へのリンクがあります。

time_tおよびclock_tは、整数型または実数浮動型でなければなりません。

良い答えへのもう1つのリンク:https ://stackoverflow.com/a/471287/276274

于 2012-07-31T20:22:46.393 に答える