gpt4 book ai didi

c - 测试用例失败 fwrite()

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:48:04 24 4
gpt4 key购买 nike

我正在尝试测试 fwrite。我正在尝试编写一个 fwrite 失败的用例。这是我试过的方法。

#include <stdio.h>
#include <errno.h>
int main()
{
char arr[6] = "manty";
int ret;
FILE *fp;
printf("Before fwrite - errno - %d\n", errno);
// fp = fopen("fwrite_test.txt", "w+");
ret = fwrite(arr, sizeof(arr) + 2, 1, fp);
printf ("ret - %d errno - %d ferror - %d\n", ret, errno, ferror(fp));
return 0;
}

通过故意评论 fopen() 我认为 fwrite 会返回一个错误。但它给出了段错误。

如何测试 fwrite()?

最佳答案

此处未初始化的变量 fp 结果为 undefined behavior ,在您的情况下会导致崩溃,因为您正试图在进程范围之外的内存上写入。

为了为fwrite 编写测试用例,您需要避免可能导致未定义行为的情况,例如这一个和leeduhem 列出的一些情况。 ,然后根据需要传递您的参数以测试它们。

关于c - 测试用例失败 fwrite(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22213993/

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