gpt4 book ai didi

c - 设置最小缓冲区大小

转载 作者:行者123 更新时间:2023-11-30 14:35:17 24 4
gpt4 key购买 nike

当我使用setvbuf()函数设置文件处理缓冲区时,我注意到了一些事情。如果我不使用 256 或更大的缓冲区大小,当我尝试打印缓冲区时,我会得到奇怪的符号。但是,如果我对缓冲区使用 256 种大小,我会得到最多 8 个字符的正确字符表示形式。我已经对这个问题进行了研究,但我想由于我缺乏知识而找不到答案。

#include <stdio.h>
#define SIZE 8 //Below 256
int main(void)
{
char buffer[SIZE];

FILE *fp = fopen("name.txt","w");
setvbuf(fp,buffer,_IOFBF,SIZE);
fputs("a",fp);
printf("%s\n",buffer);
fclose(fp);
return 0;
}

预期输出

a

实际输出

a!'^//Something like this.

最佳答案

传递给 setvbuf 的缓冲区内容在任何时候都是不确定的(请参阅 7.21.5.6/2 in C11 standardcppreference page on setvbuf )。所以你不应该期待任何事情。

关于c - 设置最小缓冲区大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58607509/

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