gpt4 book ai didi

c - 如何在管道上进行 fseek()

转载 作者:太空狗 更新时间:2023-10-29 11:24:14 25 4
gpt4 key购买 nike

我正在尝试为 popen 的输出动态分配内存,但试图查找文件的长度时出现“非法查找”错误。代码是

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void main()
{
char cmd[40] = {0};
char * c;
int byteCount = 0;
FILE * pFp = NULL;
strncpy(cmd, "ls -l", sizeof(cmd));
pFp = popen(cmd, "r");
if (pFp == NULL)
printf ("file is null");
fseek(pFp, 0, SEEK_END);
byteCount = ftell(pFp);
perror("seek ");
fclose(pFp);
}

fgets 工作正常,将 fseek 与 popen 一起使用是否有任何限制?提前致谢。

最佳答案

是的,您不能从管道向后查找,只能向前查找。计算机中的管道就像现实生活中的管道一样,数据只向一个方向流动,无法改变流向。

关于c - 如何在管道上进行 fseek(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19187131/

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