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 一样

posted @ 2018-10-12 15:31  陈富林  阅读(1170)  评论(0编辑  收藏  举报