gpt4 book ai didi

c - 管道未清除 - 我每次都在读取相同的第一个字符

转载 作者:太空宇宙 更新时间:2023-11-04 04:21:28 25 4
gpt4 key购买 nike

我目前正在从子进程中读取管道,如下所示。问题是当 fgetc 工作时,它并没有开始新的一行。它一直在读取,所以我的程序总是在“!”处中断

例如:
! -> !example -> !exampleExample
而不是
! -> 示例 -> 示例

下面是我的读函数,但是读的时候管道基本没有清空。

char* read_line(FILE* file) {
char* result = malloc(sizeof(char) * 80);
int position = 0;
int next = 0;
while (1) {
next = fgetc(file);
if (next == '!') {
return "!";
}
if (next == EOF || next == '\n') {
result[position] = '\0';
return result;
} else {
result[position++] = (char)next;
}
}
}

最佳答案

访问结果[位置]没有限制,有可能会崩溃。 malloc 之后 memset 没有完成。忽略所有这些问题似乎出在调用 read_line 的函数中。检查返回地址的处理,返回“!”不正确。

关于c - 管道未清除 - 我每次都在读取相同的第一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46418640/

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