- 博客(10)
- 收藏
- 关注
转载 enum使用
Unnamed enumerator data types can also be declared. The name of the data type is omitted, but variables can be declared. The variable response is a variable of the type defined:enum { yes, no } resp
2018-01-03 10:07:47
206
原创 linux红黑树使用
红黑树的是在排序而叉树的基础上加了如下约束:1:每个节点或者是黑色,或者是红色2:根节点是黑色3:如果一个节点是红色的,则它的子节点必须是黑色的4:从一个节点到任一叶子所有路径上包含相同数目的黑节点linux内核红黑树实现://指向一课红黑树struct rb_node{unsigned long rb_parent_color;#de
2017-12-10 12:12:11
697
原创 Linux内核inet socket 相关结构总结
struct proto_ops:inet_stream_ops, inet_dgram_ops, inet_sockraw_opsstruct socket.ops就是上边的结构,当用户通过系统调用send发数据时,ops 负责把数据传递给 struct sockistruct proto: tcp_prot,udp_prot,raw_prot struct sock.s
2017-11-30 14:24:50
651
转载 iptables
(一)洞悉linux下的Netfilter&iptables:什么是Netfilter(二)洞悉linux下的Netfilter&iptables:内核中的ip_tables小觑(三)洞悉linux下的Netfilter&iptables:内核中的rule,match和target(四)洞悉linux下的Netfilter&iptables:包过滤子系统iptable_filt
2017-07-17 10:46:51
307
原创 函数调用栈帧结构
leave指令等价于: movl %ebp, %esp; pop %ebp:此时ebp指向func1的栈底,esp指向栈顶,指向返回地址,即调用func2后下一条指令的地址,通过 ret ,可返回到原函数继续执行。
2016-11-22 23:28:32
271
原创 逻辑地址到线性地址的转换,线性地址到物理地址
逻辑地址由段和偏移量组成每个段有相关的属性,比如代码段还是数据段,段的特权级等,通过一个段描述符struct来指定。所有的段描述符放在一个全局的段描述符struct数组里GDT或者LDT,每个进程的进程上下文中包含有一个段寄存器。段寄存器中放有段描述符的地址,找到该进程要访问的段的段描述符后,取出其中的BASE字段,就是段地址,加上偏移量就是线性地址
2016-11-17 22:40:15
558
转载 linux内核代码结构
arch 这个子目录包含了此核心源代码所支持的硬件体系结构相关的核心代码。如对于X86平台就是i386。 include 这个目录包括了核心的大多数include文件。另外对于每种支持的体系结构分别有一个子目录。 init 此目录包含核心启动代码。 mm 此目录包含了所有的内存管理代码。与具体硬件体系结构相关的内存管理代码位于arch/*/mm目录下,如对
2016-11-16 19:32:16
251
原创 字符和字符串C函数
1.getchar:char ch=getchar; 当缓存区无内容,等待键盘输入,键盘按回车(回车键的ASCII也被存入缓存区),getchar读取一个字符,可以是回车,当缓存区有内容,不如堵塞等待键盘输入,直接读取缓存区的一个字符(可以是回车).2、scanf scanf输入格式为:字符串、整型、实型等数据判断的方式都一样,回车、空格、tab键都认为是一个
2016-10-23 10:05:46
286
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人