C OS X上getdate\r的隐式声明

C OS X上getdate\r的隐式声明,c,macos,time.h,C,Macos,Time.h,我正在尝试将此C函数与以下代码一起使用: struct tm *res = NULL; result = getdate_r(temp->value, res); 然而,clang告诉我:函数“getdate\r”的隐式声明在C99中无效 我有以下资料: #define _GNU_SOURCE #include <time.h> 定义GNU源 #包括 有人在OS X上使用过getdate\r吗?你真的有GCC吗?我认为在OSX中,gcc是clang的别名。试试gcc--v

我正在尝试将此C函数与以下代码一起使用:

struct tm *res = NULL;
result = getdate_r(temp->value, res);
然而,clang告诉我:
函数“getdate\r”的隐式声明在C99中无效

我有以下资料:

#define _GNU_SOURCE
#include <time.h>
定义GNU源
#包括

有人在OS X上使用过
getdate\r
吗?

你真的有GCC吗?我认为在OSX中,gcc是clang的别名。试试gcc--version。我的错,它叮当作响。我是索尔吗?是的;OS X上的C库似乎没有函数
getdate\u r()
。请注意,POSIX指定但未指定重入版本
getdate\u r()
。请注意,你是误用;您需要向函数传递一个非空指针:
struct tm res;如果(getdate\r(time\u value,&res)!=0){…error…}
getdate\r
是GNU扩展。仅仅做
#define(定义)GNU(源代码)
并不能神奇地为您提供GNU扩展。你可能实际上没有。OS X的页面中没有提到它。但它出现在Linux手册页中:。哦,可重入版本的
getdate()
似乎并不比原来的版本好多少。谢谢