我有一个更大的程序(150行左右),但这似乎是我唯一的问题。我设法减少了这个问题,把它变成了一个较小的程序。从本质上说,它分叉程序并尝试执行linux命令(我用ubuntu运行这个命令)。我得到以下输出:
Current instruction is bin/ls
Current instruction is bin/ls
Child PID is 984
Traceback (most recent call last):
File "./Test.py", line 17 in <module>
makeFork("bin/ls")
File "./Test.py", line 12, in makeFork
os.execl(instruction, instruction)
File "/usr/lib/python2.7/os.py", line 314, in execl
execv(file, args)
OSError: [Errno2] No such file or directory
Parent PID is 4
下面是程序的代码
import os
from time import sleep
os.system("clear")
def makeFork(instruction):
PID = os.fork() #Creating a fork for the child process
sleep(2)
print("Current instruction is " + instruction)
if PID == 0:
print("\nChild PID is " + format(os.getpid()))
os.execl(instruction, instruction)
sleep(2)
print("\nParent PID is " + format(os.getppid()))
makeFork("bin/ls")
我哪里出错了?你知道吗
bin/ls
不是/bin/ls
:没有前导/
的名称是相对于当前工作目录的,因此要求当前目录有一个名为bin
的子目录,其中包含一个可执行的ls
。你知道吗因为不存在这样的目录,所以会得到一个错误2(“没有这样的文件或目录”)。将调用更改为:
…而且运行正常。你知道吗
相关问题 更多 >
编程相关推荐