os.execv를 사용하여 현재 프로세스를 새 프로세스로 바꾸려면 아무런 인수가 없으면 정상적으로 작동합니다.args 인수가없는 os.execv
시작하려는 프로세스로 전달할 인수가 없어도 어떻게 호출 할 수 있습니까?
는# Works fine, unless the arguments tuple wouldn't exist or be empty
os.execv('process.exe', ('arg1', 'arg2'))
os.execv를 사용하여 현재 프로세스를 새 프로세스로 바꾸려면 아무런 인수가 없으면 정상적으로 작동합니다.args 인수가없는 os.execv
시작하려는 프로세스로 전달할 인수가 없어도 어떻게 호출 할 수 있습니까?
는# Works fine, unless the arguments tuple wouldn't exist or be empty
os.execv('process.exe', ('arg1', 'arg2'))
좋아, IRC에 요구 후 그들이 그것을 이런 식으로 작동하는 이유를 지적하려고합니다.
첫 번째 인수 (arg0)는 일반적으로 실행중인 파일 이름 (예 : sys.argv [0])이므로 첫 번째 인수는 항상 파일 이름이어야합니다.
이것은 인수가 선택 사항이 아닌 이유를 설명합니다. IRC에서 arg0은 응용 프로그램의 이름이 무엇인지 생각한다고 말합니다. 보통 인수 목록 (sys.argv에)의 첫 번째 매개 변수는 응용 프로그램을 호출하는 데 사용 된 명령입니다
cmd = '/usr/bin/vi'
os.execv(cmd, ('',))
os.execv(cmd, [''])
os.execl(cmd, '')
:
이
os.execv('process',())
당신에게 인수없이 확인하십시오 process
일입니다 나를 위해 작동?
또는 execl 함수는
os.execl('process')
이 세 가지 변형은 문제를 해결할 수 있습니다.
cmd = '/usr/bin/vi'
os.execv(cmd, (cmd,))
os.execv(cmd, [cmd])
os.execl(cmd, cmd)
는
os.exec* documentation on python.org는 튜플 (파이썬 2.7에서) 나를 위해 비어 있음 오류를주고, 그래 난이 인수없이 작동 알 수
이것은 정답입니다. 인덱스 0의 인수는 프로그램의 이름입니다. –
는, 그것의
: 는 그래서 그 중 하나를 사용하는 것이 좋습니다 py2exe 패키지. –
2.5가 사용 중이므로 문제가 될 수 있습니다. execl()을 사용해 보셨습니까? –
execl이 막후에서 execv를 사용하고있는 것 같습니다 : http://pastebin.com/W1YKpxe7 –