摘要: 关于select与epoll的区别,网上的文章已是一大堆。不过别人的终究是别人的,总得自己去理解才更深刻。于是在阅读了大量的文章后,再装模作样的看下源码,写下了自己的一些理解。 在开始之前,要明白linux中分用户空间、内核空间,这相当于两块不能直接相互访问的内存。而用户程序要访问设备,包括网... 阅读全文
posted @ 2015-04-04 19:14 coding my life 阅读(648) 评论(0) 推荐(0) 编辑
摘要: 随着lua越来越成熟,在服务器中应用也越来越广。自己也想向这方面发展,于是便开始lua的学习。 学习新的语言,应该是先编译、安装、部署开发调试环境,然后练习...可是,我现在并没有项目做啊,我只是想先熟悉一下lua的语法,没必要这么复杂。于是便开始找个简单的lua IDE。挑来挑去,选了个Ze... 阅读全文
posted @ 2015-04-03 23:01 coding my life 阅读(2106) 评论(0) 推荐(0) 编辑
摘要: 前几天面试时被问及C++中的覆盖、隐藏,概念基本答不上来,只答了怎么用指针实现多态,也还有遗漏。最终不欢而散。回来后在网上查找学习了一番,做了这个总结。其中部分文字借用了别人的博客,望不要见怪。引用的博客如下:http://www.cnblogs.com/feiguo/archive/2013/... 阅读全文
posted @ 2015-03-15 16:37 coding my life 阅读(796) 评论(0) 推荐(1) 编辑
摘要: ubuntu的内核经常升级,而老内核并不自动卸载.时间长了,就有一大堆内核垃圾,需要我们手动去清理.先用uname -a 查看当前内核版本:xzc@xzc-HP-ProBook-4446s:~$ uname -aLinux xzc-HP-ProBook-4446s 3.13.0-46-gener... 阅读全文
posted @ 2015-03-07 22:13 coding my life 阅读(575) 评论(2) 推荐(0) 编辑
摘要: 对文件加锁是原子性的,可以用于进程间文件操作的同步。在linux下,有三个函数可以对文件进程加锁,分别是fcntl、flock、lockf。这里只说fcntl,它的用法也是最复杂的。 fcntl是file control的缩写。在linux下大部分设备都是文件,所以fcntl的功能也比较多,包... 阅读全文
posted @ 2015-02-07 22:04 coding my life 阅读(3241) 评论(0) 推荐(1) 编辑
摘要: 今天在调试程序时,sem_timedwait居然返回了一个Interrupted system call,错误码为EINTR。系统中断这东西我一向只闻其名,不见其"人",不想今天遇上了,脑中一片空白,赶紧上网恶补一下。 系统中断,要从慢系统调用(slow system call)说起,请参考h... 阅读全文
posted @ 2015-01-31 18:39 coding my life 阅读(2326) 评论(0) 推荐(0) 编辑
摘要: 两个甚至多个进程使用共享内存(shm)通信,总遇到同步问题。这里的“同步问题”不是说进程读写同步问题,这个用信号量就好了。这里的同步问题说的是同步退出问题,到底谁先退出,怎么知道对方退出了。举个例子:进程负责读写数据库A,进程B负责处理数据。那么进程A得比进程B晚退出才行,因为要保存进程B处理完... 阅读全文
posted @ 2015-01-25 21:51 coding my life 阅读(3123) 评论(0) 推荐(0) 编辑
摘要: 在上一篇文章(http://www.cnblogs.com/coding-my-life/p/4220128.html)中,提到了libev提供了处理信号的C++ wrap。但我显然接受不了需要进入libev的事件循环(event loop)后才能捕捉到消息的缺点。于是决定依照libev的思路自... 阅读全文
posted @ 2015-01-17 21:20 coding my life 阅读(1541) 评论(0) 推荐(0) 编辑
摘要: ev_signal是libev提供的对信号处理的一个模块,基本上是对sigaction函数的一个封装,并将本身是异步的信号转化为同步。ev_signal的使用十分简单:#include #include static void sigint_cb (struct ev_loop *loop,... 阅读全文
posted @ 2015-01-12 23:18 coding my life 阅读(4297) 评论(0) 推荐(1) 编辑
摘要: sem_unlink在man手册里有这么一段话: sem_unlink() removes the named semaphore referred to by name. The semaphore name is removed immediately. The semaphore isdest 阅读全文
posted @ 2015-01-10 22:53 coding my life 阅读(5746) 评论(0) 推荐(0) 编辑