liunx驱动----异步通知
生活随笔
收集整理的這篇文章主要介紹了
liunx驱动----异步通知
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
查詢:消耗資源
中斷:read 一直要去讀 poll :指定起始時間 異步通知 signal 測試程序 include <stdio.h> include <signal.h>void my_signal(int signum) {static unsigned int cnt;printf("signum = %d, %d timer\n",signum ,++cnt);//liunx 命令行中是行緩沖的。 } int main(int argc,char **argv) {signal(SIGUSR1,my_signal);while(1){sleep(1000);}return 0; } kill -USR1 PID 發送信號給進程?
信號的要點在應用程序中:
signal(SIGIO,my_signal);//開啟異步通知 fcntl(fd, F_SETOWN, getpid());//獲取自身的PID getpid() 也就是確定發給誰這個問題 Oflags = fcntl(fd, F_GETFL); //獲取當前的flag fcntl(fd, F_SETFL, Oflags | FASYNC);//修改當前Flag 設置為異步通知的Flag 在驅動程序中 通知應用程序有信號來了 fasync_helper(fd, file, on, &button_signal); 的目的是為了 初始化 button_signal button_signal 在文件中定義:static struct fasync_struct *button_signal; ? ? 目的:通過驅動程序來通知應用程序 來讀某些東西。 ?轉載于:https://www.cnblogs.com/hjxzjp/p/10493119.html
總結
以上是生活随笔為你收集整理的liunx驱动----异步通知的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle中逻辑运算符(not,and
- 下一篇: 中信银行信用卡现金分期手续费是多少?怎么