gpt4 book ai didi

c - 如何在 Linux 中使用 crypt() 方法?

转载 作者:IT王子 更新时间:2023-10-29 00:39:23 26 4
gpt4 key购买 nike

我只想使用crypt() 生成加密密码,我写了一个调用crypt() 方法的演示。这是我的代码

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>

int main()
{
printf("%s\n",crypt("abc","ab"));
exit(0);
}

我使用 "gcc tem.c -lcrypt' 编译它,当我运行它时,一切似乎都是正确的,但是出现了一个“段错误”。所以请告诉我这个简单的问题是什么程序?

最佳答案

如果你用标志编译 -Wall你会明白为什么。

如果您阅读 manual page你会看到它使用 #define _XOPEN_SOURCE在包括 <unistd.h> 之前.它实际上应该在包含任何 header 之前定义。

如果你不定义_XOPEN_SOURCE然后是 crypt函数不会被原型(prototype)化。那么编译器就不知道实际的返回类型是什么,也不知道参数的类型和数量。所以它会假设函数返回一个 int和你的 printf需要一个字符串,因此会出现导致崩溃的类型不匹配。

关于c - 如何在 Linux 中使用 crypt() 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15549591/

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