Ich bin auf OSX. Das ist mein C++ Code:Terminal-Befehle und C++ System (...) Befehl gibt unterschiedliche Ergebnisse zurück
char * lCommandChar = lCommand;
std::cout << lCommandChar << std::endl;
int lSystRep = system(lCommandChar);
Die Konsolenanzeige:
echo -n "d2b16b956644ba30a73e9b116a4a4f4099add017" | /usr/bin/openssl dgst -verify /Users/me/opm.public -sha1 -signature /Users/me/Library/Caches/OrchPlay/temp_sig.bin
Verification Failure
Wenn ich den Terminal öffnen und das vorherige Protokoll Ich habe kopieren:
$ echo -n "d2b16b956644ba30a73e9b116a4a4f4099add017" | /usr/bin/openssl dgst -verify /Users/me/opm.public -sha1 -signature /Users/me/Library/Caches/OrchPlay/temp_sig.bin
Verified OK
Wo kann der Unterschied zwischen den 2 Systemaufrufen?
Edit: Ich habe endlich die -d die Debug-Ausgabe angezeigt werden, könnte ich einen Unterschied sieht offenbar im Zusammenhang mit dem Lesen der Unterschrift: Mein Code zurückkehrt:
BIO[6100000C01read(0,8192) - FILE pointer
BIO[6100000C01read return 44
Das Terminal kehrt:
BIO[7FB060C152read(0,8192) - FILE pointer
BIO[7FB060C152read return 40
Aber ich weiß immer noch nicht, wie das zu beheben ist.
Haben Sie die Benutzerrechte überprüft? Vielleicht darf Ihre App nicht auf eine der Dateien zugreifen ... – Wum
Ja, das scheint nicht damit zu tun zu haben. – BaptisteB
Welche Ausgabe erhalten Sie in beiden Fällen, wenn Sie den Befehl "-verbose" zu Ihrem openssl-Befehl hinzufügen? – Wum