我得到的代碼使用函數'time'和'time.h'中的其他函數,'time'每'時間'都返回NULL(哈哈,雖然不好笑,但這對我來說很貴將注意力集中在這樣的情況下),重新執行。事實很奇怪,這只是昨天才開始的。以前在相似但缺乏的情況下使用相同的函數(我已經添加到它)代碼證明沒問題。以下是C89代碼:爲什麼time.h中定義的函數'time'返回NULL?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1
typedef struct tm tm;
int logf(char input_string[])
{
time_t* current_time_since_epoch;
time(current_time_since_epoch);
if (current_time_since_epoch == NULL)
{
printf("'time' returned NULL.\n");
return EXIT_FAILURE;
}
tm* current_time_calandar_time = localtime(current_time_since_epoch);
if (current_time_calandar_time == NULL)
{
printf("'localtime' returned NULL.\n");
return EXIT_FAILURE;
}
char current_time_textual_representation[20];
strftime(current_time_textual_representation, 20, "%d-%m-%Y %H:%M:%S", current_time_calandar_time);
printf("%s\n", current_time_textual_representation);
printf("%s\n", input_string);
return EXIT_SUCCESS;
}
int main(void)
{
int check_logf = logf("Hello.");
if (check_logf == 0) exit(EXIT_SUCCESS);
else
{
printf("'logf' returned EXIT_FAILURE.\n");
exit(EXIT_FAILURE);
}
}
'stdlib.h'有自己的'EXIT_SUCCESS'和'EXIT_FAILURE'定義(即使在C89中),它們是可移植的。但是,'EXIT_SUCCESS'是相當無用的。 – effeffe