我正在尝试打开一个新的子进程,它将接受一些输入文件并在其他文件中生成输出。虽然大多数情况下它都能正常运行,但当我尝试进行一些压力测试时,它会失败并给出以下错误跟踪:
File "/home/admin/Workspace/.metadata/.plugins/org.eclipse.pde.core/pde-junit/org.eclipse.osgipython/util/media_info.py", line 161, in external_process
process = subprocess.Popen(command, shell=shell, close_fds=True, stderr=subprocess.PIPE)
File "/usr/local/lib/python2.6/subprocess.py", line 623, in __init__
errread, errwrite)
File "/usr/local/lib/python2.6/subprocess.py", line 1141, in _execute_child
raise child_exception
OSError: [Errno 7] Argument list too long
最初我认为我传递的命令(它是 4 个文件的绝对路径)比操作系统可以支持的长。但即使在将绝对路径减少到原始值的 1/4 后。我仍然收到此错误。请注意,我并不总是收到此错误。大多数情况下,运行 1000 次或以上后,路径长度在所有情况下都保持不变。
斯特雷斯是你的朋友。输入 -s 2048 看看到底发生了什么。了解 C 将帮助您阅读本文,但您仍然可以在没有 C 知识的情况下挑选出长 exec* 字符串。
http://stromberg.dnsalias.org/~strombrg/debugging-with-syscall-tracers.html http://stromberg.dnsalias.org/~strombrg/debugging-with-syscall-tracers.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)