Python fcntl 与 signal 模块使用


  • 这两个模块是Python标准库里面就包含的模块

  • 用法介绍在
    https://docs.python.org/2/library/signal.html
    https://docs.python.org/2/library/fcntl.html

  • 语法和 C 很相似, 如下

    self.gpio0_irq_file = open("/dev/switch")
    signal.signal(signal.SIGIO, self.get_rain_data)
    fcntl.fcntl(self.gpio0_irq_file, fcntl.F_SETOWN, os.getpid())
    flags = fcntl.fcntl(self.gpio0_irq_file, fcntl.F_GETFL);
    flags |= os.O_ASYNC;
    fcntl.fcntl(self.gpio0_irq_file, fcntl.F_SETFL, flags);
    
  • 主要,我想用Python 调用 linux C 的异步调用

  • 如上,O_SYNC 是 os 模块里面包含, SIGIO 这些是在 signal 模块里面被定义, F_GETFL 是在 fcntl 里面, 一次类推。

  • 基本上和 Linux C 一样


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM