用法:
fcntl.ioctl(fd, request, arg=0, mutate_flag=True)
此函數與
fcntl()
函數相同,隻是參數處理更加複雜。request
參數僅限於可以容納 32 位的值。可以在termios
模塊中找到用作request
參數的其他感興趣的常量,其名稱與相關 C 頭文件中使用的名稱相同。參數
arg
可以是整數、支持隻讀緩衝區接口的對象(如bytes
)或支持讀寫緩衝區接口的對象(如bytearray
)之一。除最後一種情況外,所有行為都與
fcntl()
函數相同。如果傳遞了可變緩衝區,則行為由
mutate_flag
參數的值確定。如果它是假的,緩衝區的可變性被忽略並且行為與隻讀緩衝區一樣,除了上麵提到的 1024 字節限製被避免 - 隻要你傳遞的緩衝區至少與操作係統想要的一樣長放在那裏,事情應該會奏效。
如果
mutate_flag
為真(默認),則緩衝區(實際上)被傳遞給底層的ioctl()
係統調用,後者的返回碼被傳遞回調用 Python,緩衝區的新內容反映了ioctl()
。這是一個輕微的簡化,因為如果提供的緩衝區長度小於 1024 字節,則首先將其複製到 1024 字節長的靜態緩衝區中,然後將其傳遞給ioctl()
並複製回提供的緩衝區。如果
ioctl()
失敗,則會引發OSError
異常。一個例子:
>>> import array, fcntl, struct, termios, os >>> os.getpgrp() 13341 >>> struct.unpack('h', fcntl.ioctl(0, termios.TIOCGPGRP, " "))[0] 13341 >>> buf = array.array('h', [0]) >>> fcntl.ioctl(0, termios.TIOCGPGRP, buf, 1) 0 >>> buf array('h', [13341])
使用參數
fd
、request
、arg
引發審計事件fcntl.ioctl
。
相關用法
- Python dict fromkeys()用法及代碼示例
- Python frexp()用法及代碼示例
- Python functools.wraps用法及代碼示例
- Python functools.singledispatchmethod用法及代碼示例
- Python float轉exponential用法及代碼示例
- Python calendar firstweekday()用法及代碼示例
- Python fsum()用法及代碼示例
- Python float.is_integer用法及代碼示例
- Python format()用法及代碼示例
- Python calendar formatmonth()用法及代碼示例
- Python filecmp.cmpfiles()用法及代碼示例
- Python functools.singledispatch用法及代碼示例
- Python float()用法及代碼示例
- Python fileinput.filelineno()用法及代碼示例
- Python fileinput.lineno()用法及代碼示例
- Python fileinput.input用法及代碼示例
- Python functools.partial用法及代碼示例
- Python functools.partialmethod用法及代碼示例
- Python fileinput.input()用法及代碼示例
注:本文由純淨天空篩選整理自python.org大神的英文原創作品 fcntl.ioctl。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。