gpt4 book ai didi

c - 带有 GCC 7.2.0 的 Ubuntu 17.10 上的 strptime 错误

转载 作者:太空宇宙 更新时间:2023-11-04 07:56:57 25 4
gpt4 key购买 nike

编译使用 strptime 的程序时:

gcc http_server.c -g -std=c11 -o http_server

我遇到了这个警告:

warning: implicit declaration of function 'strptime'; did you mean 'strftime'? [-Wimplicit-function-declaration]

当我运行该程序时,出现段错误。经过进一步调试,我发现它在 strptime() 行失败了。我在文件中包含了 time.h。如标题所述,我也在使用 gcc 7.2.0。任何帮助将不胜感激,因为我不知所措。

这是我的代码中的一行:

const char TIME_FORMAT[] = "%a, %d %b %Y %H:%M:%S GMT\r\n";
char date[255];
strcpy(date, token + 19);
strptime(date, TIME_FORMAT, request->if_modified_since);

最佳答案

在编译器命令行上使用 -D_XOPEN_SOURCE=700。只是 -D_XOPEN_SOURCE 等同于 -D_XOPEN_SOURCE=1 并且不会得到 strptime() 声明。

您可以使用 500 或 600 而不是 700;你不需要。

您也可以使用 -std=gnu11 而不是 -std=c11 然后 strptime() 将暴露,有或没有-D_XOPEN_SOURCE=700

您还可以考虑使用 header 来确保使用正确的 POSIX 定义;我就是做这个的。参见 posixver.h,它是在我的 GitHub 上可用 SOQ (堆溢出问题)存储库作为文件 posixver.hsrc/libsoq子目录。

关于c - 带有 GCC 7.2.0 的 Ubuntu 17.10 上的 strptime 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49418868/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com