IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> epoll监测不到/sys/class目录下的读写事件? -> 正文阅读

[C++知识库]epoll监测不到/sys/class目录下的读写事件?

EPOLL监测不到/sys/class目录下的读写事件?

//-------------------------------------------------------------------------------------
int GetWifiConnectionStatus()
{
    char buf[32] = {0};
    FILE *fp = fopen("/sys/class/net/wlan0/operstate", "r");
    if (!fp){       printf ("/sys/class/net/wlan0/operstate\n");
        return 0;
    }
    fread (buf, sizeof(char), sizeof(buf)-1, fp);               //printf ("buf:%s\n", buf);
    fclose(fp);

    if (0 == strncmp("up", buf, 2)){                            //printf ("opersatate:%s\n", buf);
        return 1;
    }

    return 0;
}

#define MAX_WIFI_EVENT 3
//-------------------------------------------------------------------------------------
void *ThrFunWaitWifiEvent(int bCW)
{
    int fd = open("/sys/class/net/wlan0/operstate", O_RDONLY);
    if (fd < 0){    printf ("open /sys/class/net/wlan0/operstate failed\n");
        return -1;
    }
	int epfd, nfds;
	struct epoll_event ev, events[MAX_WIFI_EVENT];      // ev用于注册事件,数组用于返回要处理的事件
	epfd = epoll_create(1);			                    //只需要监听一个描述符——标准输出
	ev.data.fd = fd;
	ev.events = EPOLLIN | EPOLLET;						//监听读状态同时设置ET模式
	epoll_ctl(epfd, EPOLL_CTL_ADD, fd, &ev);            //注册epoll事件

	while (1){
		nfds = epoll_wait(epfd, events, MAX_WIFI_EVENT, -1);
		for (int i = 0; i < nfds; i++){
            if (events[i].events & EPOLLOUT)                printf ("operstatte EPOLLOUT\n");
            if (events[i].events & EPOLLIN)                printf ("operstatte EPOLLIN\n");
			if (events[i].data.fd == fd){
                if (GetWifiConnectionStatus()){
                    SetReporter(REPORTER_NETWORK_CONNECTED, 1);
                } else {
                    SetReporter(REPORTED_NETWORK_DISCONNECTED, 1);
                }
            }
		}
	}

    if (fd>0){
        close(fd);
        fd = -1;
    }
}

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-13 11:37:20  更:2022-05-13 11:38:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/10 7:30:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码