在Docker上使用python fcntl.ioctl给Errno 22

时间:2019-06-13 16:28:11

标签: python docker

我使用python2在最新的Docker Ubuntu映像中运行以下代码:

Docker:

docker pull ubuntu
docker run -it ubuntu /bin/bash

在docker中:

apt update
apt install python
touch test
python

在python中:

>>> import struct
>>> import fcntl
>>> f = open("test", "rb")
>>> binary_data = fcntl.ioctl(f, 2, struct.pack('I', 0))

错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IOError: [Errno 22] Invalid argument

我在PC上执行的相同流程,结果没有出现任何错误。 我怀疑文件描述符有问题。在这两种情况下,当我调用f.fileno()时,我都得到结果3。在两种情况下,我都在python 2.7.16上运行它。

但是当我在Docker中运行时:

>>> import struct
>>> import fcntl
>>> f = open("test", "rb")
>>> binary_data = fcntl.ioctl(2, 2, struct.pack('I', 0))

我没有错误。

0 个答案:

没有答案