上一页 1 ··· 7 8 9 10 11 12 13 下一页
摘要: 在Linux系统中,有7种文件类型。 在Solaris上,还有一种文件类型, 叫做door文件。 而一个文件的Unix访问权限,包括12位,通常用4个8进制位表示, 通常我们使用"chmod 777 <file>", 本质上是"chmod 0777 <file>"。 SUID, SGID, SVTX 阅读全文
posted @ 2017-02-19 18:48 veli 阅读(2158) 评论(0) 推荐(0)
摘要: 虽然handle和handler只有一个字符之差,但在计算机的世界里,含义却大相径庭。 1. 先说说handle 北京话说"一边儿玩儿去,玩勺子把儿去","勺子把儿"说的就是handle。而将handle译成"句柄"绝对是一个相当文雅相当阳春白雪的翻译,因为太文绉绉啦,很多文化底蕴不够的码农就看不大 阅读全文
posted @ 2017-02-18 20:26 veli 阅读(19325) 评论(1) 推荐(19)
摘要: 在ILP32中, char, short, int, long, long long, pointer分别占1, 2, 4, 4, 8, 4个字节,在 LP64中, char, short, int, long, long long, pointer分别占1, 2, 4, 8, 8, 8个字节,无论 阅读全文
posted @ 2017-02-18 12:01 veli 阅读(5410) 评论(0) 推荐(0)
摘要: 在最近的求职面试过程中,关于"建立TCP连接的三次握手"不止一次被问到了,虽然我以前用同样的问题面试过别人,但感觉还是不能给面试官一个很清晰的回答。本文算是对整个TCP连接管理做一个比较系统的梳理。 1. TCP报文段结构(TCP Segment Structure)(i.e. TCP Header 阅读全文
posted @ 2017-02-16 17:00 veli 阅读(985) 评论(0) 推荐(0)
摘要: 在C的世界中,因为要考虑效率问题,所以在申请一段内存的时候,需要根据寄存器的宽度进行对齐。因此,对于32位的程序,按照4字节对齐;对于64位的程序,则按照8字节对齐。 o 下面使用位运算给出实现: o 用Python代码简单实现并验证一下: o 测试 最后,以8字节对齐讲解其实现原理。 设x = 8 阅读全文
posted @ 2017-02-15 15:35 veli 阅读(1263) 评论(0) 推荐(0)
摘要: 理解ELF的BSS section, 可以概括为: Uninitialized global/static data "Block Started by Symbol" "Better Save Space" Has section header but occupies no space CSAP 阅读全文
posted @ 2017-02-15 10:35 veli 阅读(4860) 评论(0) 推荐(1)
摘要: 一个典型的C程序内存布局,从低地址到高地址分别为: 1. text (正文段,即代码段 Code Segment) 2. data (已经初始化的数据段) 3. bss (未被初始化的数据段 Block Started by Symbol) 4. heap (堆) 5. stack (栈) 注1:上 阅读全文
posted @ 2017-02-15 08:54 veli 阅读(428) 评论(0) 推荐(0)
摘要: 假定字符串S,以字符序列a1a2...an表示。例如: 对于字符串"abc", 全排列为cba bca bac cab acb abc 本文采用非递归方法给出Python代码实现。 实现的思路采用从特殊到一般的方法(PS: 我的高中数学老师Mr Xie最为推崇的数学方法就是"从特殊到一般,再从一般到 阅读全文
posted @ 2017-02-12 22:05 veli 阅读(608) 评论(0) 推荐(0)
摘要: 在C语言编程中,我们几乎不可能看见有人将一个结构体变量作为参数进行传递,因为效率太低了。本文尝试从反汇编的角度给出其中的缘由。 对于C语言来说,所有的参数传递都是值传递。如果一个变量为指针,那么传递的就是指针变量的值(即某个内存地址)。 那么,如果一个参数是结构体变量(包括多个成员),怎么从call 阅读全文
posted @ 2017-01-19 18:51 veli 阅读(1131) 评论(0) 推荐(0)
摘要: 在C语言中,如果我们要访问一个数组的某个下标对应的元素,通常的写法是a[i]。但从汇编的角度看,写成i[a]一点问题都没有。 下面通过代码给出证明。 o foo1.c o foo2.c o foo3.c o 编译和运行 o 反汇编后diff 1) foo1.gdb.out 2) foo2.gdb.o 阅读全文
posted @ 2017-01-19 10:47 veli 阅读(784) 评论(0) 推荐(0)
上一页 1 ··· 7 8 9 10 11 12 13 下一页