写一个C语言epoll函数使用例子代码
时间: 2024-05-14 08:13:19 浏览: 105
基于C语言编写的高并发Epoll服务器.zip
好的!以下是一个简单的C语言epoll函数使用示例代码:
```c
#include <sys/epoll.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <fcntl.h>
#define MAX_EVENTS 10
int main()
{
int epfd, nfds, fd, i;
struct epoll_event ev, events[MAX_EVENTS];
// 创建 epoll 实例
epfd = epoll_create1(0);
if(epfd == -1){
perror("epoll_create");
return -1;
}
// 设置要监听的文件描述符
fd = open("test.txt", O_RDONLY);
if(fd == -1){
perror("open");
return -1;
}
// 添加要监听的文件描述符到 epoll 实例
ev.events = EPOLLIN;
ev.data.fd = fd;
if(epoll_ctl(epfd, EPOLL_CTL_ADD, fd, &ev) == -1){
perror("epoll_ctl");
return -1;
}
// 启动 epoll 循环
while(1){
nfds = epoll_wait(epfd, events, MAX_EVENTS, -1);
if(nfds == -1){
perror("epoll_wait");
return -1;
}
for(i = 0; i < nfds; i++){
if(events[i].data.fd == fd){
char buf[256];
ssize_t n;
// 读取文件内容并输出
n = read(fd, buf, sizeof(buf));
if(n == -1){
perror("read");
return -1;
}
printf("%.*s", (int)n, buf);
}
}
}
return 0;
}
```
希望能对您有所帮助!
阅读全文