摘要:
我写socket相关的程序也不是一天两天了,在我的记忆中,只要处理好recv(或read)的返回值中0三种情况,程序便不会有什么问题。但最近在看公司的源代码时,发现代码中直接将SIGPIPE设置为SIG_IGN。而且附上一段注释:往一个已经关闭的socket写入数据会触发SIGPIPE。我心中顿...
阅读全文
posted @ 2015-06-14 17:31
coding my life
阅读(6960)
推荐(0)
摘要:
系统是ubuntu 14.04 64bit,之前曾想安装Stream来玩dota2,但最终没成功。由于Stream只有32bit,安装Stream时也安装了大量32bit的库。删除Stream后,这些库也一直没管,今天忽然心血来潮,想清理一下系统,把不必要的32bit库都干掉。 dpkg -l...
阅读全文
posted @ 2015-06-13 21:04
coding my life
阅读(4956)
推荐(0)
摘要:
迅雷一直没有出linux版,wine不想去弄。linux下虽然也有各种bt软件,无奈我试用后却发现速度远比不上迅雷,甚至有些资源根本找不到。而有些迅雷的专用链接,更是没法下(原谅我2M的小水管,却喜欢看美剧)。随着各种电视盒子、智能路由的出现,迅雷弄了一个远程下载,即xware。远程下载其实就是...
阅读全文
posted @ 2015-04-16 00:56
coding my life
阅读(6971)
推荐(6)
摘要:
关于select与epoll的区别,网上的文章已是一大堆。不过别人的终究是别人的,总得自己去理解才更深刻。于是在阅读了大量的文章后,再装模作样的看下源码,写下了自己的一些理解。 在开始之前,要明白linux中分用户空间、内核空间,这相当于两块不能直接相互访问的内存。而用户程序要访问设备,包括网...
阅读全文
posted @ 2015-04-04 19:14
coding my life
阅读(659)
推荐(0)
摘要:
随着lua越来越成熟,在服务器中应用也越来越广。自己也想向这方面发展,于是便开始lua的学习。 学习新的语言,应该是先编译、安装、部署开发调试环境,然后练习...可是,我现在并没有项目做啊,我只是想先熟悉一下lua的语法,没必要这么复杂。于是便开始找个简单的lua IDE。挑来挑去,选了个Ze...
阅读全文
posted @ 2015-04-03 23:01
coding my life
阅读(2132)
推荐(0)
摘要:
前几天面试时被问及C++中的覆盖、隐藏,概念基本答不上来,只答了怎么用指针实现多态,也还有遗漏。最终不欢而散。回来后在网上查找学习了一番,做了这个总结。其中部分文字借用了别人的博客,望不要见怪。引用的博客如下:http://www.cnblogs.com/feiguo/archive/2013/...
阅读全文
posted @ 2015-03-15 16:37
coding my life
阅读(809)
推荐(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
阅读(590)
推荐(0)
摘要:
对文件加锁是原子性的,可以用于进程间文件操作的同步。在linux下,有三个函数可以对文件进程加锁,分别是fcntl、flock、lockf。这里只说fcntl,它的用法也是最复杂的。 fcntl是file control的缩写。在linux下大部分设备都是文件,所以fcntl的功能也比较多,包...
阅读全文
posted @ 2015-02-07 22:04
coding my life
阅读(3416)
推荐(1)
摘要:
今天在调试程序时,sem_timedwait居然返回了一个Interrupted system call,错误码为EINTR。系统中断这东西我一向只闻其名,不见其"人",不想今天遇上了,脑中一片空白,赶紧上网恶补一下。 系统中断,要从慢系统调用(slow system call)说起,请参考h...
阅读全文
posted @ 2015-01-31 18:39
coding my life
阅读(2531)
推荐(0)
摘要:
两个甚至多个进程使用共享内存(shm)通信,总遇到同步问题。这里的“同步问题”不是说进程读写同步问题,这个用信号量就好了。这里的同步问题说的是同步退出问题,到底谁先退出,怎么知道对方退出了。举个例子:进程负责读写数据库A,进程B负责处理数据。那么进程A得比进程B晚退出才行,因为要保存进程B处理完...
阅读全文
posted @ 2015-01-25 21:51
coding my life
阅读(3265)
推荐(0)