我正在尝试在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?
答案 0 :(得分:1)
在调用外部程序之前尝试sys.stdout.flush()
。