先吐槽自己,这么多年了,这里都成了遗弃之地了。上次写博客还是未婚小青年,这个时候已经是娃她爸好几个月了。
最近遇到个大坑,记录下。
自用一台小服务器HP N40L,用了FreeBSD+ZFS做文件服务器,当然还有跑了几个重要的服务:unbound+dnssec,为什么,你懂得。还有obfuscated ssh+privoxy,同理。以前一直用的是FreeBSD 9.1-release,很好,但是,这个服务器的启动盘,我用了一块老的不行的靠重新量产救回来过一次的KingMax超棒作为启动盘和根文件系统,也一直没有问题。但是,前面某天为了某些原因,拉了次闸,然后我在用的时候,发现挂载的好好的NFS不见了。于是,看了下启动信息,是挂载根文件系统失败。
最近因为某些原因,把自己的家用服务器从FreeBSD 9.1升级到了10.0,然后,然后就踩到了大坑。原来跑的好好的obfuscate-ssh重新编译什么的都正常,但是一跑就core dump。直接gdb看了下,直指一个库函数调用strnvis,这个函数,然后,仔细看了看代码,我去……雷翻的节奏啊,这也行啊?
C
write(2)在磁盘满的时候的行为
今天一个同事问我关于write(2)在写入文件的时候问题,问题是这样的:
当磁盘剩余空间不能将一次write调用希望写入的数据写完的时候,write是直接返回-1,然后设置errno为ENOSPC,还是先写入一部分数据,将剩余空间占满然后再下一次调用的时候返回错误?
当时发现好像没有考虑过这样的问题,Google了一下,好像没有找到关于这个细节的说明。
编译时缺少pthread_rwlock_t的定义
今天在交叉编译一个程序的时候,发现了pthread_rwlo … 阅读更多
GCC选项native
今天在某篇讲Gentoo优化的文章中看到,使用GCC4.2以 … 阅读更多
Linux应用程序延时
昨天遇到哦啊两个很奇怪的问题,我需要显示几秒钟的对话框,总是 … 阅读更多
gtkbuilder
今天猛然发现,项目中使用的GTK版本是2.12.1,根据网上 … 阅读更多
24位位图转换为16位位图
前两天因为要测试的系统的屏幕是16位色的,需要5-6-5格式 … 阅读更多
关于termios中的一个小问题
前些天在写一个2410上的串口通信程序的时候,一开校验,数据 … 阅读更多