Отправка стандартного вывода в ответ на порожденную программу CGI - PullRequest
0 голосов
/ 12 января 2010

Я пытаюсь создать .zip-файл в CGI-программе и отправить его в качестве ответа на контент. Я застреваю в этом всякий раз, когда я запускаю программу, которая печатает на стандартный вывод, которая почему-то не принимается Apache. Похоже, что-то связано с порождением программы, которая пишет в stdout. Фрагмент ниже воспроизводит эту проблему. Я всегда получаю следующую ошибку формы Apache:

malformed header from script. Bad header=hello world  

print ("Content-Type: text/html");  
print ("");  
#print ("hello world");     <-----This works  
os.system("echo hello world");  <-----This doesn't work

Это прекрасно работает, если я просто распечатаю строку из моего CGI-скрипта. Если я запускаю его с любым оператором из командной строки, нет разницы в поведении. Есть ли что-то особенное, что мне нужно сделать, чтобы вывести stdout из порожденной программы в качестве моего респона?

1 Ответ

1 голос
/ 12 января 2010

Попробуйте sys.stdout.flush() перед вызовом внешних программ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...