Wer weiß, wie ich das beheben kann?C - Popen zeigt keine richtige Ausgabe
char bash_cmd[256] = "curl";
char buffer[1000];
FILE *pipe;
int len;
pipe = popen(bash_cmd, "r");
if (NULL == pipe) {
perror("pipe");
exit(1);
}
fgets(buffer, sizeof(buffer), pipe);
printf("OUTPUT: %s", buffer);
pclose(pipe);
Der obige Code snippit kehrt die folgenden:
OUTPUT: (�3B
statt dessen, was er zurückgespielt werden sollte, das ist:
curl: try 'curl --help' or 'curl --manual' for more information
Irgend etwas stimmt nicht, ich kann nicht herausfinden Was. Wenn ich "curl" durch zB "ls -la" ersetze, funktioniert es gut, aber aus welchem Grund auch immer, wenn ich curl verwende, speichert es die Ausgabe nicht richtig im Puffer. Was könnte ich tun, um das zu beheben? Vielen Dank im Voraus
Auch "Curl" mit dem vollständigen Pfad zum Curl zu ersetzen, (/ usr/bin/curl) funktioniert auch nicht. ; (
Zunächst haben Sie den Rückgabewert Ihrer Funktionen nicht überprüft. –