本文整理汇总了Python中os.O_NONBLOCK属性的典型用法代码示例。如果您正苦于以下问题:Python os.O_NONBLOCK属性的具体用法?Python os.O_NONBLOCK怎么用?Python os.O_NONBLOCK使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类os
的用法示例。
在下文中一共展示了os.O_NONBLOCK属性的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: start
# 需要导入模块: import os [as 别名]
# 或者: from os import O_NONBLOCK [as 别名]
def start(self):
"""
Start this monitor.
The monitor will not receive events until this method is called. This
method does nothing if called on an already started :class:`Monitor`.
.. note::
Typically you don't need to call this method. It is implicitly
called by :meth:`poll()` and :meth:`__iter__()`.
.. seealso:: :attr:`started`
.. versionchanged:: 0.16
This method does nothing if the :class:`Monitor` was already
started.
"""
if not self._started:
self._libudev.udev_monitor_enable_receiving(self)
# Force monitor FD into non-blocking mode
pipe.set_fd_status_flag(self, os.O_NONBLOCK)
self._started = True
示例2: _pipe2_by_pipe
# 需要导入模块: import os [as 别名]
# 或者: from os import O_NONBLOCK [as 别名]
def _pipe2_by_pipe(flags):
"""A ``pipe2`` implementation using :func:`os.pipe`.
``flags`` is an integer providing the flags to ``pipe2``.
.. warning::
This implementation is not atomic!
Return a pair of file descriptors ``(r, w)``.
"""
fds = os.pipe()
if flags & os.O_NONBLOCK != 0:
for fd in fds:
set_fd_status_flag(fd, os.O_NONBLOCK)
if flags & O_CLOEXEC != 0:
for fd in fds:
set_fd_flag(fd, O_CLOEXEC)
return fds
示例3: freebsd_tun_alloc
# 需要导入模块: import os [as 别名]
# 或者: from os import O_NONBLOCK [as 别名]
def freebsd_tun_alloc(self, dev, flags):
try:
sockfd = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ifr = struct.pack('<16si', 'tun', 0)
self.iface_name = fcntl.ioctl(sockfd, self.IOCTL_FREEBSD_SIOCIFCREATE2, ifr)
self.iface_name = self.iface_name.rstrip("\x00")
buff = array.array('c', dev+"\x00")
caddr_t, _ = buff.buffer_info()
ifr = struct.pack('16sP', self.iface_name, caddr_t);
fcntl.ioctl(sockfd, self.IOCTL_FREEBSD_SIOCSIFNAME, ifr)
tun = os.open("/dev/"+self.iface_name, os.O_RDWR | os.O_NONBLOCK)
self.iface_name = dev
except IOError as e:
print e
common.internal_print("Error: Cannot create tunnel. Is {0} in use?".format(dev), -1)
sys.exit(-1)
return tun
示例4: __connect
# 需要导入模块: import os [as 别名]
# 或者: from os import O_NONBLOCK [as 别名]
def __connect(self):
device_addr, hidraw_device, event_device = self.__find_device()
if device_addr is None:
return False
self.__report_fd = os.open(hidraw_device, os.O_RDWR | os.O_NONBLOCK)
self.__fd = FileIO(self.__report_fd, "rb+", closefd=False)
self.__input_device = InputDevice(event_device)
self.__input_device.grab()
buf = bytearray(38)
buf[0] = 0x02
try:
return bool(fcntl.ioctl(self.__fd, 3223734279, bytes(buf)))
except:
pass
if self.recv():
self.update_controller()
示例5: start
# 需要导入模块: import os [as 别名]
# 或者: from os import O_NONBLOCK [as 别名]
def start(self) -> None:
self.current_frame = [0 for _ in range(self.bars)]
self.growing_frame = b""
try:
# delete old contents of the pipe
os.remove(self.cava_fifo_path)
except FileNotFoundError:
# the file does not exist
pass
try:
os.mkfifo(self.cava_fifo_path)
except FileExistsError:
# the file already exists
logging.info("%s already exists while starting", self.cava_fifo_path)
self.cava_process = subprocess.Popen(
["cava", "-p", os.path.join(settings.BASE_DIR, "config/cava.config")],
cwd=settings.BASE_DIR,
)
# cava_fifo = open(cava_fifo_path, 'r')
self.cava_fifo = os.open(self.cava_fifo_path, os.O_RDONLY | os.O_NONBLOCK)
示例6: read_char_no_blocking
# 需要导入模块: import os [as 别名]
# 或者: from os import O_NONBLOCK [as 别名]
def read_char_no_blocking():
''' Read a character in nonblocking mode, if no characters are present in the buffer, return an empty string '''
fd = sys.stdin.fileno()
old_settings = termios.tcgetattr(fd)
old_flags = fcntl.fcntl(fd, fcntl.F_GETFL)
try:
tty.setraw(fd, termios.TCSADRAIN)
fcntl.fcntl(fd, fcntl.F_SETFL, old_flags | os.O_NONBLOCK)
return sys.stdin.read(1)
except IOError as e:
ErrorNumber = e[0]
# IOError with ErrorNumber 11(35 in Mac) is thrown when there is nothing to read(Resource temporarily unavailable)
if (sys.platform.startswith("linux") and ErrorNumber != 11) or (sys.platform == "darwin" and ErrorNumber != 35):
raise
return ""
finally:
fcntl.fcntl(fd, fcntl.F_SETFL, old_flags)
termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
示例7: train
# 需要导入模块: import os [as 别名]
# 或者: from os import O_NONBLOCK [as 别名]
def train(self):
i=0
if(self.args.ipython):
import fcntl
fd = sys.stdin.fileno()
fl = fcntl.fcntl(fd, fcntl.F_GETFL)
fcntl.fcntl(fd, fcntl.F_SETFL, fl | os.O_NONBLOCK)
while((i < self.total_steps or self.total_steps == -1) and not self.gan.destroy):
i+=1
start_time = time.time()
self.step()
GlobalViewer.tick()
if (self.args.save_every != None and
self.args.save_every != -1 and
self.args.save_every > 0 and
i % self.args.save_every == 0):
print(" |= Saving network")
self.gan.save(self.save_file)
if self.args.ipython:
self.check_stdin()
end_time = time.time()
示例8: blocking
# 需要导入模块: import os [as 别名]
# 或者: from os import O_NONBLOCK [as 别名]
def blocking(self, port, mode=False):
"""
Set port function mode blocking/nonblocking
:param port: port to set mode
:param mode: False to set nonblock mode, True for block mode
"""
fd = self._open([port])[0]
try:
fl = fcntl.fcntl(fd, fcntl.F_GETFL)
if not mode:
fcntl.fcntl(fd, fcntl.F_SETFL, fl | os.O_NONBLOCK)
else:
fcntl.fcntl(fd, fcntl.F_SETFL, fl & ~os.O_NONBLOCK)
except Exception as inst:
print("FAIL: Setting (non)blocking mode: " + str(inst))
return
if mode:
print("PASS: set to blocking mode")
else:
print("PASS: set to nonblocking mode")
示例9: test_fcntl_bad_file
# 需要导入模块: import os [as 别名]
# 或者: from os import O_NONBLOCK [as 别名]
def test_fcntl_bad_file(self):
class F:
def __init__(self, fn):
self.fn = fn
def fileno(self):
return self.fn
self.assertRaises(ValueError, fcntl.fcntl, -1, fcntl.F_SETFL, os.O_NONBLOCK)
self.assertRaises(ValueError, fcntl.fcntl, F(-1), fcntl.F_SETFL, os.O_NONBLOCK)
self.assertRaises(TypeError, fcntl.fcntl, 'spam', fcntl.F_SETFL, os.O_NONBLOCK)
self.assertRaises(TypeError, fcntl.fcntl, F('spam'), fcntl.F_SETFL, os.O_NONBLOCK)
# Issue 15989
self.assertRaises(ValueError, fcntl.fcntl, _testcapi.INT_MAX + 1,
fcntl.F_SETFL, os.O_NONBLOCK)
self.assertRaises(ValueError, fcntl.fcntl, F(_testcapi.INT_MAX + 1),
fcntl.F_SETFL, os.O_NONBLOCK)
self.assertRaises(ValueError, fcntl.fcntl, _testcapi.INT_MIN - 1,
fcntl.F_SETFL, os.O_NONBLOCK)
self.assertRaises(ValueError, fcntl.fcntl, F(_testcapi.INT_MIN - 1),
fcntl.F_SETFL, os.O_NONBLOCK)
示例10: follow_file
# 需要导入模块: import os [as 别名]
# 或者: from os import O_NONBLOCK [as 别名]
def follow_file(filename):
while True:
try:
fd = os.open(filename, os.O_RDONLY | os.O_NONBLOCK)
except OSError:
yield None
continue
try:
inode = os.fstat(fd).st_ino
first = True
while True:
try:
stat = os.stat(filename)
except OSError:
stat = None
yield first, time.time(), fd
if stat is None or inode != stat.st_ino:
break
first = False
finally:
os.close(fd)
示例11: _openTunnel
# 需要导入模块: import os [as 别名]
# 或者: from os import O_NONBLOCK [as 别名]
def _openTunnel(self, name, mode):
"""
Open the named tunnel using the given mode.
@param name: The name of the tunnel to open.
@type name: L{bytes}
@param mode: Flags from L{TunnelFlags} with exactly one of
L{TunnelFlags.IFF_TUN} or L{TunnelFlags.IFF_TAP} set.
@return: A L{_TunnelDescription} representing the newly opened tunnel.
"""
flags = (
self._system.O_RDWR | self._system.O_CLOEXEC |
self._system.O_NONBLOCK)
config = struct.pack("%dsH" % (_IFNAMSIZ,), name, mode.value)
fileno = self._system.open(_TUN_KO_PATH, flags)
result = self._system.ioctl(fileno, _TUNSETIFF, config)
return _TunnelDescription(fileno, result[:_IFNAMSIZ].strip(b'\x00'))
示例12: test_startListeningOpensDevice
# 需要导入模块: import os [as 别名]
# 或者: from os import O_NONBLOCK [as 别名]
def test_startListeningOpensDevice(self):
"""
L{TuntapPort.startListening} opens the tunnel factory character special
device C{"/dev/net/tun"} and configures it as a I{tun} tunnel.
"""
system = self.system
self.port.startListening()
tunnel = self.system.getTunnel(self.port)
expected = (
system.O_RDWR | system.O_CLOEXEC | system.O_NONBLOCK,
b"tun0" + b"\x00" * (_IFNAMSIZ - len(b"tun0")),
self.port.interface, False, True)
actual = (
tunnel.openFlags,
tunnel.requestedName,
tunnel.name, tunnel.blocking, tunnel.closeOnExec)
self.assertEqual(expected, actual)
示例13: _make_non_blocking
# 需要导入模块: import os [as 别名]
# 或者: from os import O_NONBLOCK [as 别名]
def _make_non_blocking(file_obj):
"""make file object non-blocking
Windows doesn't have the fcntl module, but someone on
stack overflow supplied this code as an answer, and it works
http://stackoverflow.com/a/34504971/2893090"""
if USING_WINDOWS:
LPDWORD = POINTER(DWORD)
PIPE_NOWAIT = wintypes.DWORD(0x00000001)
SetNamedPipeHandleState = windll.kernel32.SetNamedPipeHandleState
SetNamedPipeHandleState.argtypes = [HANDLE, LPDWORD, LPDWORD, LPDWORD]
SetNamedPipeHandleState.restype = BOOL
h = msvcrt.get_osfhandle(file_obj.fileno())
res = windll.kernel32.SetNamedPipeHandleState(h, byref(PIPE_NOWAIT), None, None)
if res == 0:
raise ValueError(WinError())
else:
# Set the file status flag (F_SETFL) on the pipes to be non-blocking
# so we can attempt to read from a pipe with no new data without locking
# the program up
fcntl.fcntl(file_obj, fcntl.F_SETFL, os.O_NONBLOCK)
示例14: open
# 需要导入模块: import os [as 别名]
# 或者: from os import O_NONBLOCK [as 别名]
def open(cls):
"""Open and return a new :class:`Pipe`.
The pipe uses non-blocking IO."""
source, sink = _PIPE2(os.O_NONBLOCK | O_CLOEXEC)
return cls(source, sink)
示例15: lin_tun_alloc
# 需要导入模块: import os [as 别名]
# 或者: from os import O_NONBLOCK [as 别名]
def lin_tun_alloc(self, dev, flags):
try:
tun = os.open(Interface.LINUX_CLONEDEV, os.O_RDWR|os.O_NONBLOCK, 0)
ifr = struct.pack('16sH', dev, flags)
fcntl.ioctl(tun, self.IOCTL_LINUX_TUNSETIFF, ifr)
except IOError:
common.internal_print("Error: Cannot create tunnel. Is {0} in use?".format(dev), -1)
sys.exit(-1)
return tun