Тип простого вопроса, но я ничего не могу найти рядом с моей проблемой, поэтому здесь я иду, я пытаюсь выполнить программу на языке C на Python, чтобы получить результат, проблема в этом не работает. У меня нет ошибки, но когда я пытаюсь распечатать вывод, я просто ничего не получаю, как пустое пространство или что-то в этом роде, но если я печатаю то, что выводится (это слово?) В моем C, он работает отлично, так вот мой питон код:Получение вывода программы C в python
command = "./serialize %s %s %s" %(binary , width , height)
p=subprocess.Popen(command, shell=True,stderr=subprocess.STDOUT)
(output, err) = p.communicate()
print output
(довольно прямо вперед, двоичная строка и ширина и высота являются целые числа)
и если вы хотите знать, вот мой C код:
char* main(char* argc,char* argv[]){
char* r;
r = serialize(argv[1],atoi(argv[2]),atoi(argv[3]));
printf("%s", r);
return r;
}
(сериализация - это функция, которую я сделал, которая отлично работает, я знаю, из-за pr intf перед возвратом, которые дают мне то, что я хочу).
Итак, если у вас есть идея, что было бы здорово, спасибо всем.
Только что попробовал это, но я получил сообщение об ошибке, здесь отслеживающий: Traceback (самый последний вызов последний): Файл "testsql.py", строка 77, в стандартный вывод, STDERR = subprocess.check_output (команда) Файл «/usr/lib/python2.7/subprocess.py», строка 567, в файле check_output process = Popen (stdout = PIPE, * popenargs, ** kwargs) Файл «/ usr /lib/python2.7/subprocess.py ", строка 711, в __init__ errread, errwrite) Файл" /usr/lib/python2.7/subprocess.py ", строка 1340, в _execute_child raise child_exception TypeError: execv() arg 2 должен содержать только строки –
@DrunkenChoko Значения 'width' и' height'? Я так считаю; Я обновил ответ. – refi64
Argh, ну, новый день, новая ошибка, возвращенный ненулевой статус выхода 32, это довольно уродливо, я бы сказал. –