首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >linux中的Python OSError no 7(参数列表太长)

linux中的Python OSError no 7(参数列表太长)
EN

Stack Overflow用户
提问于 2012-01-23 18:21:23
回答 1查看 4.1K关注 0票数 4

我正在尝试打开一个新的子进程,它将接受一些输入文件,并在其他文件中生成输出。虽然它在大多数情况下都运行得很干净,但当我尝试进行一些压力测试时,它会失败,并给出以下错误跟踪:

代码语言:javascript
复制
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或更多的运行之后,而路径长度对于所有情况都保持不变。

EN

回答 1

Stack Overflow用户

发布于 2012-10-27 03:07:45

strace是你的朋友。再加上一台-s 2048,看看到底发生了什么。了解C语言将帮助您阅读本文,但您仍然可以在不了解C语言的情况下挑选出长的exec*字符串。

http://stromberg.dnsalias.org/~strombrg/debugging-with-syscall-tracers.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8970121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档