Python subprocess.check_outputで使用できる最大文字数
Pythonのsubprocess.check_outputで使用できる文字数を調査した。
Bashの環境変数’ARG_MAX’の数値とは関連がないようです。
import subprocess
i = int(100000000)
n = 0
while True:
try:
n += i
text = 'b' * n
command = 'echo "{text}"'.format(text=text)
subprocess.check_output(command,shell=True)
except OSError:
print("Fail: ",n)
if i == 1:
print("LENGTH: ", n -1 + 7)
break
n -= i
i //= 10
Ubuntu 16 (Python 3.5.2)
131071文字
CentOS6 (IUS Python 3.6.1)
131071文字
OSX (Python 3.6.0)
260624文字