fcntl 您所在的位置:网站首页 1024bytes fcntl

fcntl

2023-06-29 07:16| 来源: 网络整理| 查看: 265

Esta función es idéntica a la función fcntl(), excepto por el manejo de los argumentos que es aún más complicado.

El parámetro request se encuentra limitado a valores que encajen en 32-bits. Se pueden encontrar constantes adicionales de interés para usar como argumento request en el módulo termios, con los mismos nombres que se usan en los archivos de cabecera C relevantes.

El parámetro arg puede ser un entero, un objeto que admita una interfaz de búfer de solo lectura (como bytes) o un objeto que admita una interfaz de búfer de lectura-escritura (como: clase bytearray).

En todos los casos excepto en el último, el comportamiento es el de la función fcntl().

Si se pasa un búfer mutable, el comportamiento estará determinado por el valor del parámetro mutate_flag.

Si es falso, la mutabilidad del búfer se ignorará y el comportamiento será como el de un búfer de solo lectura, excepto por el límite de 1024 bytes mencionado arriba, que será evitado – siempre que el búfer que pase sea al menos tan largo como el sistema operativo quiera colocar allí, las cosas deberían funcionar.

Si mutate_flag es verdadero (valor predeterminado), entonces el búfer se pasa (en efecto) a la llamada al sistema subyacente ioctl(), el código de retorno de éste último se retorna al Python que llama, y el nuevo contenido del búfer refleja la acción de ioctl(). Esto es una ligera simplificación, porque si el búfer proporcionado tiene menos de 1024 bytes de longitud, primero se copia en un búfer estático de 1024 bytes de longitud que luego se pasa a ioctl() y se copia de nuevo en el búfer proporcionado.

Si ioctl() falla, se lanza la excepción OSError.

Un ejemplo:

>>> 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])

Lanza un evento auditing event fcntl.ioctl con argumentos fd, request, arg.



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有