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 の結果が得られるのはなぜですか。