用法:
os.eventfd(initval[, flags=os.EFD_CLOEXEC])
創建並返回一個事件文件說明符。文件說明符支持緩衝區大小為 8 的原始
read()
和write()
、select()
、poll()
等。有關更多信息,請參見手冊頁eventfd(2)
。默認情況下,新文件說明符是不可繼承的。initval
是事件計數器的初始值。初始值必須是 32 位無符號整數。請注意,盡管事件計數器是一個最大值為 264-2 的無符號 64 位整數,但初始值僅限於 32 位無符號 int。flags
可以從EFD_CLOEXEC
、EFD_NONBLOCK
和EFD_SEMAPHORE
構造。如果指定了
EFD_SEMAPHORE
並且事件計數器不為零,則eventfd_read()
返回 1 並將計數器減一。如果未指定
EFD_SEMAPHORE
且事件計數器非零,則eventfd_read()
返回當前事件計數器值並將計數器重置為零。如果事件計數器為零且未指定
EFD_NONBLOCK
,則eventfd_read()
阻塞。eventfd_write()
增加事件計數器。如果寫入操作會將計數器增加到大於 264-2 的值,則寫入塊。例子:
import os # semaphore with start value '1' fd = os.eventfd(1, os.EFD_SEMAPHORE | os.EFC_CLOEXEC) try: # acquire semaphore v = os.eventfd_read(fd) try: do_work() finally: # release semaphore os.eventfd_write(fd, v) finally: os.close(fd)
可用性:Linux 2.6.27 或更高版本以及 glibc 2.8 或更高版本。
3.10 版中的新函數。
相關用法
- Python os.path.normcase()用法及代碼示例
- Python os.read()用法及代碼示例
- Python os.DirEntry.inode()用法及代碼示例
- Python os.closerange()用法及代碼示例
- Python os.set_blocking()用法及代碼示例
- Python os.pathconf()用法及代碼示例
- Python os.chflags()用法及代碼示例
- Python os.WCOREDUMP()用法及代碼示例
- Python os.fork()用法及代碼示例
- Python os.ctermid()用法及代碼示例
- Python os.mkfifo()用法及代碼示例
- Python os.tcsetpgrp()用法及代碼示例
- Python os.path.commonpath()用法及代碼示例
- Python os.path.splitdrive用法及代碼示例
- Python os.mkdir()用法及代碼示例
- Python os.close()用法及代碼示例
- Python os.chroot()用法及代碼示例
- Python os.path.expanduser()用法及代碼示例
- Python os.ttyname()用法及代碼示例
- Python os.path.splitext用法及代碼示例
注:本文由純淨天空篩選整理自python.org大神的英文原創作品 os.eventfd。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。