您的位置:首页 > 其它

Libevent0.1之测试Libevent自带的例子

2015-06-02 14:45 309 查看
因为0.1版本的只支持linux版本,所以本文章中的测试环境是在ubuntu下进行。

准备工作

下载0.1版本的libevent

开始

先解压下载下来的源码

Download$ tar xzvf libevent-0.1.tar.gz


编译库文件

Download$ cd libevent
Download/libevent$ ./configure
Download/libevent$ make


编译自带的sample,-I参数指定头文件目录,-L指定库文件目录,因为它们都在本目录下,所以指定为".",-levent指定libevent.a库。

Download/libevent$ gcc -I . -o event-test sample/event-test.c -L . -levent
成功后会在当前目录下生成一个event-test文件

event-test.c例子中使用了一个命名管道(也被称为FIFO文件)的东西,命名管道用于不同进程之间进行通信(IPC),命名管道具体内容可以参考这里。它通过读的方式打开一个命名管道,并且监听这个命名管道是否有数据可读,当有数据可读时会执行fifo_read函数,把读取的内容打印出来。

下面就是我写的一个往这个命名管道写内容的简单的程序:

#include <sys/types.h>
#include <sys/stat.h>
#include <sys/queue.h>
#include <sys/time.h>
#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>

int main(int argc, char **argv)
{
char *input = argv[1];
if (argc != 2)
{
input = "hello";
}
int fd ;
fd = open("event.fifo",O_WRONLY);
if(fd == -1){
perror("open error");
exit(EXIT_FAILURE);
}

write(fd, input, strlen(input));
close(fd);
printf("write success\n");
return 0;
}


把上面代码保存为writeFIFO.c,然后编译

Download/libevent$ gcc -o writeFIFO writeFIFO.c


成功后会生成一个writeFIFO文件

然后就是测试了,先运行event-test,程序会一直等待命名管道是否有数据可读

Download/libevent$ ./event-test


另开一个终端执行:

Download/libevent$ ./writeFIFO 123456


event-test将会收到”123456“并且打印在终端
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: