【发布时间】:2013-10-04 17:17:26
【问题描述】:
我正在尝试为 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 有什么限制吗? 提前致谢。
【问题讨论】:
-
正确缩进你的代码。
-
popen(cmd, "r");,这是什么? -
@hacks 这是一个函数调用。
-
这个问题似乎跑题了,因为它不可读。
-
你不能这样做也可以参考stackoverflow.com/questions/5975170/…