老碰到这样的情况:见到一个bug,很熟悉,但又记不起是怎么样解决的。所以,就想到用一篇博文记录下来:
2011、11、17:
Bad file descriptor: 一般出现这个错误的原因是以只读的权限打开文件,却调用了写函数;
如果需要从被调用函数中带回字符串值,请用char **
2011、12、3:
内存泄漏问题:程序的内存泄漏问题编译器无法察觉,而幸运的是linux下有valgrind这个工具,用以检测内存错误。关于它的介绍,ibm上有一篇很好的文章:
2011、12、13:
最近在设计HLFS快照,设计了7页多,最后被师哥大刀阔斧地砍到1页。从中学到一些设计的方法:
>>接口与封装:
在设计接口的时候,我把struct inode *inode 作为接口的返回值,这样就把inode结构体暴露给了用户,其实用户是不需要知道inode的内容的。所以最后改成了uint64_t inode_addr。项目中的struct hlfs_ctrl也一样,用户也不需知道hlfs_ctrl的内容,所以师哥用HLFS_CTRL_T进行了封装;
2011、12、20:
又一次把strlen(buf)写成了sizeof(*buf),结果只写入snapshot.txt一个字符。
2011.12.21:
g_strvlenth()返回的个数包括NULL,所有在循环的时候应该减1,否则段错误;
g_hash_table_remove() 出错:false 正在找原因。。。
阅读(1501) | 评论(0) | 转发(0) |