YouCompleteMe

最近用了一段时间VS,感觉用了几年的VIM显得有些单薄,主要是代码提示方面,补全啥的,那么又有人会说那样不好,对你熟悉代码有影响,就像有的人喷Source Insight的理由就是用到最后某个函数在哪个文件当中都不清楚了,与不停地敲对象的结构体内容相比,突然有一种找找舒适的感觉的冲动,还是决定在VIM上动刀子,毕竟EMACS一般不太会有人安装,而VIM一般都会有,而且可以远程SSH操作,有的只有V[……]

Read more

libpcap读取本地pcap文件

假如本地已经通过抓包工具保存了pcap格式的数据包文件,通过libpcap的库也能简单地进行离线分析

pcap_t *
pcap_open_offline(const char *fname, char *errbuf)

函数打开保存的数据包文件,用于读取,返回文件描述符

fname参数指定了pcap文件名

errbuf依旧是函数出错的时候返回错误信息

这样直接分析离线数据包文件,然后通过pcap_[……]

Read more

libpcap开始抓包

下面就开始抓包了

在前面获取了网口之后(或者不需要或者直接设定),需要打开:

pcap_t *
pcap_open_live(const char *source, int snaplen, int promisc, int to_ms, char *errbuf)

这个函数打开设备,然后返回一个pcap_t类型的指针,实际上就是获得用来捕获网络数据包的描述符

source是pcap_lookupd[……]

Read more

VMware ESXi配置多块物理网卡

VMware ESXi和VMware Workstation最大的不同是可以独立地安装和运行在裸机上,而不会依赖宿主在一个操作系统之上,本身就相当于一个云操作系统,而在这一套管理体系中,你可以随意创建虚拟机,可以随意部署自己的操作系统,当然整个服务器的资源分配自己控制,也就是用户可以看到自己专属资源的应用程序,而服务器可以做资源管理,完全是云的模子

今天需要在一个ESXi环境里布置一个系统,测试系[……]

Read more

编译过程

平时用的GCC实际上是一些后台程序的包装,假如手动编译一个新版本的gcc以及它的所有依赖模块,单核估计会耗费你几十分钟的时间,安装过程中可以看到as,ld之类的可执行程序安装到系统目录下,实际上gcc就是这些程序的包装,它根据不同的参数去调用相应的程序,比如预处理编译程序cc1,汇编器as,链接器ld

编译过程是将高级语言翻译成机器语言,应该算是程序完成过程最关键的地方,结合《程序员的自我修养》,[……]

Read more

PHP继续爬主页

半夜看着同学新换的cnblogs,瞧了瞧主页html的内容,居然标签内容和wordpress相差甚远,显然不是一家人,不来一家模子,看着痒痒的,继续来爬一把,这次懒得用python爬,比较单调,换换口味,用好久没动过手的PHP爬一爬,其实思路大同小异,只不过处理细节差异而已

先拿自己的wordpress试试水,还是通过正则表达式找到相关分类目录行,然后截取出关键字,做起来比较简单,就直接以脚本形式[……]

Read more

十个值得关注的c开源项目

前几天让同事有福推荐点开源软件研究下,随口给我推荐了cJSON,然后其它还有一些都写在了他的个人主页上,我就直接转过来了,当然转载的要厚道,有兴趣可以关注他写的其它内容,传送门:http://youfu.xyz

这个文章是在知乎看到别人推荐,觉得说的挺不错摘抄过来的。
这个上面的加上上一篇编程水平进阶之路,我觉得够c程序员吃一壶的了。

1. Webbench

Webbench是一个在linux下使用[……]

Read more

如何动手更solid

Boss有句口头禅:“XXXX做得不solid”!由于这个[‘salid’]读音很发人深省因此在我们同事之间广为流传!

今天在调试的时候,很流利地重写了一些代码,令人费解的是死活不出结果,自我感觉应该很solid呀,刚刚才发现是为了调试json结构体的type其中两种情况true和false的意义,将需要处理的json文件多添加了一行“lihui”:why,当时为了确认如果是true/false是[……]

Read more

cJSON库之解析json部分

cJSON是一个处理json的开源C库,它有构造json和解析json文件两部分,由于还没完全摸索完,先将解析json这部分钻研下

处理json是一个用的比较多的过程,用脚本语言的话应该python最简单了,内置字典类型,想得到json文件里的key-value的话:

pf = open(json_file, ‘r’)

decode_json = json.load(pf)

print decod[……]

Read more

Linux库文件

静态库一般后缀为.a,lib和.a之间就是库的名字,由于整个库的内容都被整到了目标代码中,因此编译出来的执行程序比较大,但是优点就是不需要再依赖外部的函数库,当然如果静态库内容变了,整个程序也必须得重新编译;使用静态库,链接器会找出程序所需要的函数,然后将他们完整copy到执行文件,因此一旦链接成功,静态库也就不需要了

动态库一半后缀为.so,lib和.so之间就是库的名字,当然有时候还包括版本号[……]

Read more

VMware ESXi 5.0配置

换了一台联想的旧笔记本,终于ESXi 5.0 has been sucessfully installed,但是貌似只有60天的使用期限,先用了再说,看看它到底如何设置licence的,是不是网络同步

1:ESXi所在机器网络配置

进入下面这段的时候,停顿了半天,我还以为要下载什么tool:

Download tools to manage this host from: http://192.1[……]

Read more