5
man strptime
と入力すると、この関数は_XOPEN_SOURCEを宣言し、time.hヘッダをインクルードする必要があります。やったよ。私は私のコードをコンパイルしようとする。しかし、私が手:strptime関数(C)を使用しているときにコンパイラが警告を受け取る
./check.c:56:警告:私のコードでの関数の暗黙的な宣言 'のstrptime'
ルック:
int lockExpired(const char *date, const char *format, time_t current) {
struct tm *tmp = malloc(sizeof(struct tm *));
time_t lt;
int et;
strptime(date, format, tmp);
lt = mktime(tmp);
et = difftime(current, lt);
if (et < 3600)
return -et;
return 1;
}
また、関数宣言がある:
char *strptime(const char *s, const char *format, struct tm *tm);
誰かが私の問題がどこから来たのか教えていただけますか?
これは、ありがとう!私のLinuxマシンで 'man strptime'が間違っているのは不思議です。私にとってはうまくいかない '_XOPEN_SOURCE'を書いています。つまり、私は '_GNU_SOURCE'についてはよく分かりません。 '__USE_XOPEN'は自分にとってはうまくいくようです。 – lpapp
'#include'を使う前に '#define __USE_XOPEN'を使うようにしてください –