上一页 1 ··· 38 39 40 41 42 43 44 45 46 ··· 48 下一页
摘要: 参考:http://www.ibm.com/developerworks/cn/linux/sdk/lex/#resources 阅读全文
posted @ 2012-09-29 21:34 helloweworld 阅读(791) 评论(0) 推荐(1) 编辑
摘要: 声明:原创作品,转载注明出处http://www.cnblogs.com/vestinfo/一、简介推荐书籍《flex&bison》.在UNIX下是flex和bison.网上介绍很多,大部分是写给懂的人看的,初学者一头雾水。这样来理解lex和yacc可能容易些:在linux下,有很多系统配置文件,一些linux下的软件也有配置文件,那么程序是如何读取配置文件中的信息的呢?首先用到lex词法分析器,读取配置文件中的关键词(后面说到的token标记其实可看做关键词)。然后把关键词递交给yacc,yacc对一些关键词进行匹配,看是否符合一定语法逻辑,如果符合就进行相应动作。上面举得例子是分析 阅读全文
posted @ 2012-09-29 21:29 helloweworld 阅读(3636) 评论(0) 推荐(3) 编辑
摘要: 声明:原创作品,转载注明出处:http://www.cnblogs.com/vestinfo/六、flex和bison相结合。test.l%{ #include "test.tab.h" #include <stdio.h> #include <stdlib.h> %} %% a {return A_STATE;} b {return B_STATE;} c {return C_STATE;} not {return NOT;} %%test.y%{ #include <stdio.h> #include <stdlib.h> 阅读全文
posted @ 2012-09-29 10:02 helloweworld 阅读(896) 评论(0) 推荐(1) 编辑
摘要: struct llist_element { struct llist_element * next; void * data;}; typedef struct llist_element llist_elm; llist_elm是一个链表型结点。 typedef struct { llist_elm * head; llist_elm * tail;} llist; llist结构体中... 阅读全文
posted @ 2012-09-27 17:22 helloweworld 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 认证即隧道的建立用TCP套接字,之后根据配置文件选择合适协议传输。 clinet隧道建立套接字和传输套接字替换 1、在clinet函数中 s = socket(AF_INET,SOCK_STREAM,0); setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)); bind(s,(struct sockaddr *)&my_addr,s... 阅读全文
posted @ 2012-09-27 15:34 helloweworld 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 只分析udp, 单独运行clinet,处于connect状态,并没有运行到tunnel这个步骤,单独运行client时没出现虚拟网卡; 单独运行server,处于listen状态,也没运行到tunnel这个步骤,所以单独运行server也不会出现虚拟新网卡。 当server端开启,处于监听状态,这时client请求连接,认证成功后client和server才会进入tunnel执行打开虚拟网卡, ... 阅读全文
posted @ 2012-09-27 12:11 helloweworld 阅读(848) 评论(0) 推荐(0) 编辑
摘要: 一、syslog(),openlog(),closelog()一套用于写系统日志的函数。这三个函数openlog, syslog, closelog是一套系统日志写入接口,另外那个vsyslog和syslog功能一样,只是参数格式不同。通常,syslog守护进程读取三种格式的记录消息。此守护进程在启动时读一个配置文件。一般来说,其文件名为/etc/syslog.conf,该文件决定了不同种类的消息应送向何处。例如,紧急消息可被送向系统管理员(若已登录),并在控制台上显示,而警告消息则可记录到一个文件中。该机制提供了syslog函数,其调用格式如下#include <syslog.h> 阅读全文
posted @ 2012-09-27 10:31 helloweworld 阅读(2442) 评论(0) 推荐(0) 编辑
摘要: openlog("vtund", LOG_PID | LOG_NDELAY | LOG_PERROR, LOG_DAEMON); 打开系统记录 在lib.c中定义, void vtun_syslog (int priority, char *format, ...) { static volatile sig_atomic_t in_syslog= 0; char buf[255]; va... 阅读全文
posted @ 2012-09-27 09:04 helloweworld 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2012-09-26 22:31 helloweworld 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 1、__io_canceled在lib.h中定义, /* IO cancelation */extern volatile sig_atomic_t __io_canceled; __io_canceled变量影响下列函数, static inline int read_n(int fd, char *buf, int len){ register int t=0, w; while (!_... 阅读全文
posted @ 2012-09-26 16:33 helloweworld 阅读(405) 评论(0) 推荐(0) 编辑
上一页 1 ··· 38 39 40 41 42 43 44 45 46 ··· 48 下一页