会员
周边
众包
新闻
博问
闪存
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
veli
分享原创技术心得,全面提高技术品味
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
4
5
6
7
8
9
10
11
12
13
下一页
2017年5月20日
有符号整数比较v.s.无符号整数比较
摘要: 本文尝试从汇编的角度给出有符号整数比较与无符号整数比较的区别所在。 在《深入理解计算机系统》(英文版第二版)一书中的Page#77,有下面一个练习题: 将上述示例代码写入foo1.c文件,运行并分析bug产生的代码行。1. foo1.c 编译并运行,发现存在着非法内存访问, 用gdb查看一下core
阅读全文
posted @ 2017-05-20 16:01 veli
阅读(2991)
评论(1)
推荐(1)
2017年5月15日
在Linux上创建webrev(cont)[基于svn]
摘要: 在前文中,基于git介绍了webrev工具。实际上,webrev工具还支持hg和svn。最近的工作中不可避免地要使用svn,故在此总结一下如何基于svn在Linux上创建webrev。顺便吐个槽,没有网页版的代码比对,用svn diff简直就是刀耕火种茹毛饮血啊!技术再娴熟的老司机,也架不住让你在高
阅读全文
posted @ 2017-05-15 13:22 veli
阅读(531)
评论(0)
推荐(0)
2017年5月14日
在Linux上创建webrev[基于git]
摘要: 在Sun/Oracle工作了N(>12)年后,对webrev工具甚为喜欢,因为其易用性确实非常好。幸运的是,有工程师将webrev工具放到了GitHub上,而且支持git。 下面给出使用webrev工具创建代码比对网页的全过程。 当然,首先得保证代码管理工具git在Linux(我用的是Ubuntu1
阅读全文
posted @ 2017-05-14 11:45 veli
阅读(786)
评论(0)
推荐(0)
2017年5月13日
理解Python语言里的异常(Exception)
摘要: 作为一个数十年如一日地钟爱C语言的程序员(因为C程序员需要记忆的关键字很少,而且可以很惬意地玩内存),对于高级语言如Python里的异常(Exception)一直不甚理解,尤其是其实现机理。但读了《Learning Python》一书中上面这句话(尤其是goto关键字)后,忽然豁然开朗。 如果用C语
阅读全文
posted @ 2017-05-13 21:04 veli
阅读(1533)
评论(0)
推荐(0)
2017年5月5日
侵入式单链表的简单实现(cont)
摘要: 前一节介绍的侵入式链表实现在封装性方面做得不好,因为会让消费者foo.c直接使用宏container_of()。这一节对list的定义做了一点改进,如下所示: 既然链表结点已经保存了offset, 那么就不再需要宏container_of()了。(注:Solaris的侵入式双向循环链表就是这么玩的,
阅读全文
posted @ 2017-05-05 12:59 veli
阅读(1504)
评论(0)
推荐(0)
2017年5月4日
侵入式单链表的简单实现
摘要: 众所周知,一个普通的单链表看起来是这样子滴, 结构体里包含了一个指向同类型的链表指针next; 而侵入式单链表则不同,让结构体包含一个成员变量,该成员变量是一个通用的链表结点。看起来是这个样儿滴, 所有包含了list_t link的结点构成一个单链表。如果说传统的单链表看起来是这样的,(背景为绿色:
阅读全文
posted @ 2017-05-04 17:09 veli
阅读(4184)
评论(0)
推荐(0)
2017年5月2日
typeof, offsetof 和container_of
摘要: 要理解Linux中实现的双向循环链表("侵入式"链表),首先得弄明白宏container_of。 本文尝试从gcc的关键字typeof和宏offsetof入手,循序渐进地剖析宏container_of之实现原理。 1. typeof (from: https://en.wikipedia.org/w
阅读全文
posted @ 2017-05-02 21:21 veli
阅读(1903)
评论(0)
推荐(0)
2017年5月1日
别了,上网小助手
摘要: 本文与个人的技术兴趣无关,但是,如果你正好也有和我一样的烦恼,也对流氓软件表示出离地愤怒,不妨花两分钟阅读一下。 背景介绍 我自己家里的笔记本电脑(操作系统: Win 7), 因为公司的事情被迫装上了"上网小助手"。 当公司给配备的电脑到位后,我就开始使用公司的电脑上班。 于是,我自己家里的电脑,显
阅读全文
posted @ 2017-05-01 12:34 veli
阅读(27358)
评论(0)
推荐(1)
2017年4月28日
gcc对open(2)支持重载吗
摘要: 在Linux中,如果man -s2 open, 我们看到两种不同的函数原型声明: 大约14年前(刚迈出大学校园没多久),第一次看到这样的声明的时候,我很纳闷,难道gcc能像g++一样支持c++的重载(overload)?当时没搞明白,反正能编译通过,就没深究(当然那时候也没能力深究)。什么是重载?所
阅读全文
posted @ 2017-04-28 16:11 veli
阅读(1098)
评论(0)
推荐(0)
2017年4月26日
将单链表排序的两种方法
摘要: 对单链表排序,通常有两种方法。(PS:考察一个程序员的C语言编程功底,通常看他是否能娴熟地操作链表就知道了。当然,实际C编程中我们并不需要去重新实现链表,无论是Linux还是Solaris, 都有双向循环链表的标准实现。) 方法1:将每一个结点的内存地址保存到额外的数组中(也就是将链式存储转化为顺序
阅读全文
posted @ 2017-04-26 19:48 veli
阅读(3645)
评论(0)
推荐(0)
上一页
1
···
4
5
6
7
8
9
10
11
12
13
下一页
公告