发送stdout作为CGI衍生程序的响应

时间:2010-01-12 17:40:09

标签: python apache cgi

我正在尝试在CGI程序中编写.zip文件并将其作为内容响应发送。每当我生成一个打印到stdout的程序时,我就会陷入困境,不知怎样,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脚本中打印字符串,它工作正常。如果我使用命令行中的任一语句运行它,则行为没有区别。我需要做些什么特别的事情才能让我的resdone从一个衍生的程序中获取stdout?

1 个答案:

答案 0 :(得分:1)

在调用外部程序之前尝试sys.stdout.flush()