gpt4 book ai didi

c - "output popen() streams are fully bufered by default"是什么意思?

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

根据 man popen,“默认情况下输出 popen() 流是完全缓冲的”。但是对于下面的代码,我仍然可以在没有 fflush(p) 命令的情况下获取我的 ls -l 命令的所有信息。这有意义吗?我想我需要 fflush(p) 将存储在用户缓冲区中的命令输出刷新到标准输出。

#include <stdio.h>

int main()
{
FILE *p=popen("ls -l","r");
char buf[100];
memset(buf,0x00,100);
//fflush(p);

fread(buf,sizeof(char),90,p);

printf("%s",buf);
pclose(p);

return 0;
}

最佳答案

这是输入 popen() 流,而不是输出流。

fflush() 函数仅对输出流或更新流进行操作,而不对输入流进行操作。

关于c - "output popen() streams are fully bufered by default"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19527864/

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