我尝试在我的C代码中执行命令行,但当我到达fgets()函数时,出现了NULL错误。
void executeCommand(char* cmd, char* output) {
FILE *fcommand;
char command_result[1000];
fcommand = popen(cmd, "r");
if (fcommand == NULL) {
printf("Fail: %s\n", cmd);
} else {
if (fgets(command_result, (sizeof(command_result)-1), fcommand) == NULL)
printf("Error !");
strcpy(output, command_result);
}
pclose(fcommand);
}
我的命令是:
java -jar <parameters>
尽管在终端上执行相同命令时结果如预期,为什么fgets返回的结果是NULL?
fgets
调用失败后,调用feof(fcommand)
和ferror(fcommand)
会得到什么结果? - Sander De Dycker