gpt4 book ai didi

c - perror() 给出段。过错

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

发生错误后,我自然会调用 perror()。但是当我这样做或 printf("error: %s\n", strerror(errno)); 我不知道发生了什么。

  int fd;
if((fd = open(FILENAME, O_RDONLY)) == -1) {
perror("fbi");
exit(1);
}

for(;;) {

readed = read(fd, buffer, BUFSIZE);

if(readed == 0)
break;

if(readed == -1) {
perror("fbi"); // <- here's the error
exit(1);
}

如何解决这个问题?

更新:

printf("%d\n", errno); // given 9

更新 2:

看起来与 recv() 函数中传递的缓冲区大小有关。如果 BUFSIZE1,则给出上述错误。但是如果 BUFSIZE 是例如 128 没有错误。有人可以解释这种行为吗?

最佳答案

不可能从这个片段中确切地知道哪里出了问题。但总的来说,问题的答案是“为什么我在调用 [rock solid c library func here] 时出现段错误?”通常是:你的堆栈被炸了。阅读,当然是主要嫌疑人。

关于c - perror() 给出段。过错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12573266/

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