Art einer einfachen Frage, aber ich kann nichts in der Nähe meines Problems finden, also hier gehe ich, ich versuche, ein C-Programm in Python auszuführen, um die Ausgabe zu erhalten, ist es ein Problem funktioniert nicht. Ich habe keinen Fehler, aber wenn ich versuche, die Ausgabe zu drucken, bekomme ich einfach nichts, wie eine Leerstelle oder etwas, aber wenn ich drucke, was ausgegeben wird (ist das ein Wort?) In meinem C funktioniert es gut, also hier ist meine python-Code:Ausgabe eines C-Programms in Python erhalten
command = "./serialize %s %s %s" %(binary , width , height)
p=subprocess.Popen(command, shell=True,stderr=subprocess.STDOUT)
(output, err) = p.communicate()
print output
(ziemlich geradlinig, binär ist ein String und Breite und Höhe sind ganze Zahlen)
und wenn Sie wissen wollen, hier ist mein C-Code:
char* main(char* argc,char* argv[]){
char* r;
r = serialize(argv[1],atoi(argv[2]),atoi(argv[3]));
printf("%s", r);
return r;
}
(Serialisierung ist eine Funktion, die ich gemacht habe, die völlig in Ordnung funktioniert, weiß ich wegen der pr Intf kurz vor der Rückkehr, die mir geben was ich will).
Also, wenn Sie irgendeine Idee haben, die großartig wäre, vielen Dank.
habe gerade versucht, aber ich habe einen Fehler, hier die Zurückverfolgungs: Traceback (jüngste Aufforderung zuletzt): File "testsql.py", Zeile 77, in stdout, stderr = subprocess.check_output (command) Datei "/usr/lib/python2.7/subprocess.py", Zeile 567, in check_output Prozess = Popen (stdout = PIPE, * popenargs, ** kwargs) Datei "/ usr /lib/python2.7/subprocess.py ", Zeile 711, in __init__ errread, errrite) Datei" /usr/lib/python2.7/subprocess.py ", Zeile 1340, in _execute_child raise child_exception TypeError: execv() arg 2 darf nur Strings enthalten –
@DrunkenChoko Sind 'width' und' height' ganze Zahlen? Ich glaube es; Ich habe die Antwort aktualisiert. – refi64
Argh, nun, neuer Tag, neuer Fehler, gab einen Nicht-Null-Exit-Status 32 zurück, es ist ziemlich hässlich, würde ich sagen. –