Python subprocess返回None这对我的fuzzer意味着什么

Python subprocess返回None这对我的fuzzer意味着什么,python,subprocess,output,fuzzer,Python,Subprocess,Output,Fuzzer,在学校,我必须制作一个模糊器,我用查尔·米勒来处理pdf文件。我想检查应用程序的故障量。当我这样做的时候 result=process.communicate() 打印(结果) 它多次打印(无,无)这意味着什么?这意味着当您创建子流程.Popen对象时,您没有指定stdout=PIPE或stderr=PIPE Popen.通信(输入=无,超时=无) 与进程交互:向stdin发送数据。从stdout和stderr读取数据[…] communicate()返回一个元组(stdout\u数据、std

在学校,我必须制作一个模糊器,我用查尔·米勒来处理pdf文件。我想检查应用程序的故障量。当我这样做的时候

result=process.communicate()
打印(结果)

它多次打印(无,无)这意味着什么?

这意味着当您创建
子流程.Popen
对象时,您没有指定
stdout=PIPE
stderr=PIPE

Popen.
通信
(输入=无,超时=无) 与进程交互:向stdin发送数据。从stdout和stderr读取数据[…]

communicate()
返回一个元组(stdout\u数据、stderr\u数据)。[……]

请注意,如果要将数据发送到进程的stdin,则需要使用
stdin=PIPE
创建对象。类似地,要在结果元组中获得除
None
之外的任何内容,您还需要给出
stdout=PIPE
和/或
stderr=PIPE
[emph.added]

-

例如:

import subprocess
apples_only = subprocess.Popen(
    ["grep", "apple"], 
    stdin=subprocess.PIPE, 
    stdout=subprocess.PIPE,
)
out, err = apples_only.communicate(b"pear\napple\nbanana\n")

print((out, err))
# (b'apple\n', None)  # did not say stderr=PIPE so it's None.

嗯,好吧,我想我明白了,但是通过使用它,我怎么知道我的fuzzer是否工作良好?不知道,我不知道“Charlie Miller”是谁/什么,或者是“fuze”ing PDF,你没有提到你是否使用单独的程序作为fuzzer,或者只是通过Python控制一个程序,等等。是的,只是啊哈,我将阅读更多关于子流程的信息,试图找出答案