gpt4 book ai didi

c - crypt() 函数是在 unistd.h 还是 crypt.h 中声明的?

转载 作者:太空狗 更新时间:2023-10-29 15:01:19 27 4
gpt4 key购买 nike

我正在使用 GCC 4.6.0(在一个其他身份不明的平台上)。

我正在使用 crypt() 函数来加密密码。

我以前从未使用过该功能,所以我查看了主页:

man 3 crypt

它说要包含 unistd.h header 。

但是,当我这样做时,我收到了针对 crypt 函数的隐式警告。

warning: implicit declaration of function ‘crypt’ [-Wimplicit-function-declaration]

我做了一些搜索,发现您必须包含 crypt.h。但是,为什么手册页中没有这样说呢?

最佳答案

它还在我的手册页中说 #define _XOPEN_SOURCE(在包含 unistd.h 之前)。所以你应该添加它来公开 crypt 的声明。

编辑

我刚刚试过了。包括 unistd.h #define _XOPEN_SOURCE 在它起作用之前。仅包含它是不够的。

使用

gcc version 4.6.0 20110429
GNU C Library stable release version 2.13

查看 unistd.h:

/* XPG4.2 specifies that prototypes for the encryption functions must
be defined here. */
#ifdef __USE_XOPEN
/* Encrypt at most 8 characters from KEY using salt to perturb DES. */
extern char *crypt (__const char *__key, __const char *__salt)
__THROW __nonnull ((1, 2));

关于c - crypt() 函数是在 unistd.h 还是 crypt.h 中声明的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6127921/

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