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 一样
Read The Fucking Source Code