在OSX上使用crypt\r
我想在Mac OS X 10.8.2上使用在OSX上使用crypt\r,c,multithreading,gnu,crypt,C,Multithreading,Gnu,Crypt,我想在Mac OS X 10.8.2上使用crypt\u r功能 #define _GNU_SOURCE #include <crypt.h> 从哪里可以获取crypt.h文件?还是我把它包括在内是错的 编辑的问题-具体示例 #include <unistd.h> #include <stdlib.h> int main(){ struct crypt_data * data = (struct crypt_data *) malloc(sizeo
crypt\u r
功能
#define _GNU_SOURCE
#include <crypt.h>
从哪里可以获取crypt.h文件?还是我把它包括在内是错的
编辑的问题-具体示例
#include <unistd.h>
#include <stdlib.h>
int main(){
struct crypt_data * data = (struct crypt_data *) malloc(sizeof(struct crypt_data));
char * testhash;
testhash = crypt_r("string", "sa", data);
free(data);
return 0;
}
编辑:crypt\u r()
在OS X上不可用
原始答复:
OS X上
的内容由
处理。因此,与其
#define _GNU_SOURCE
#include <crypt.h>
定义GNU源
#包括
简单地写
#include <unistd.h>
#包括
为了访问
crypt()
函数。即使两者都存在,我也会得到文件未找到错误--编辑:回答曾经删除过评论的人:“#定义#还需要开源”。实际上,不是在OSX上,对不起。看到我的答案。然后我得到:警告:函数'crypt\u r'的隐式声明
@kadrian您不应该这样做。您使用的是什么版本的OS X和哪个编译器?gcc:i686-apple-darwin11-llvm-gcc-4.2(gcc)4.2.1(基于apple Inc.build 5658)(llvm build 2336.11.00)
和Mac OS X 10.8.2(应该是最新的)@kadrian对我来说,同一个编译器和OS X 10.7.5不会产生任何警告。@kadrian抱歉,请注意。我写了crypt()
,而不是crypt\u r()
crypt\u r()
在OS X上不可用。
#define _GNU_SOURCE
#include <crypt.h>
#include <unistd.h>