def unpack_exeresult(buf):
# type: (bytes) -> Tuple[int, bytes, bytes]
def unpack_error():
# type: () -> None
raise ValueError('invalid buffer in unpack_exeresult')
buf = binary_type(buf)
pos = buf.find(b'|')
if pos < 0:
unpack_error()
lengths, data = buf[:pos], buf[pos + 1:]
try:
numvalues = [int(s) for s in lengths.split()]
except ValueError:
numvalues = []
if len(numvalues) != 3:
unpack_error()
returncode, outlen, errlen = numvalues
if outlen + errlen != len(data):
unpack_error()
return returncode, data[:outlen], data[outlen:outlen + errlen]
# ----------------------------------------------------------------------
评论列表
文章目录