gpt4 book ai didi

c - fgets 中的段错误,试图在 c 程序中运行 shell 命令

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

dev_list* somefunc()
{
FILE* ExecutionResult;
int deviceCount;
int deviceIndex[50];
char cmdExecute[50],finalOutputCmd[1000],outputCmd[100];
int i;
int bytes = 0;
char* temp = 0;
sprintf(cmdExecute,"%s\n" "ls -l");
printf("command = %s\n",cmdExecute);
ExecutionResult = popen(cmdExecute,"r");
memset(finalOutputCmd,0,sizeof(finalOutputCmd));

deviceCount = 0;
deviceIndex[deviceCount] = 0;
if ( ExecutionResult )
{
if (fgets(outputCmd, sizeof(outputCmd)-1, ExecutionResult) == NULL) {
printf("no bytes read\n");
bytes += (sizeof(outputCmd)-1);
}
}
printf("hello %d,%d\n",i,bytes);
return 0; //deviceList;
}

为什么 fgets 会出现段错误?我在管道内运行一个 shell 命令,其输出定向在一个文件中。但是当我试图回读时,出现段错误

最佳答案

我得到了解决方案。我做了一个strcat,这是原因。我将 finalOutputCmd[1000] 的大小增加到 50,000。

关于c - fgets 中的段错误,试图在 c 程序中运行 shell 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39754045/

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