- 博客(6)
- 资源 (8)
- 收藏
- 关注
原创 内核空间与用户空间数据交换的方式之一 --ioctl(通过字符设备演示)
对于linux而言,内核程序和用户程序分别运行在内核空间和用户空间,要实现两者的数据交换,主要有以下几种方式:系统调用,读写系统文件(procfs,sysfs, seq_file,debugfs等), Netlink, 内核模块加载参数,内核启动参数,以及设备驱动实现的设备读、写、控制(ioctl)(这种方式可以归结到读写系统文件)。 设备驱动的实现过程中一般都会通过struct fi
2013-09-04 18:12:07
1627
原创 通过socket获取本机网络接口的IP地址和状态
#include #include #include #include #include #include #include #include static int get_ip_by_ifname(char *ifname, struct in_addr *ipaddr){ int sockfd; struct ifreq ifr; struct s
2013-07-24 14:16:56
1503
原创 Linux NetFilter 解析(一)--Netfilter 框架
1.Netfilter简介 Netfilter是Linux2.4之后加入到内核的防火墙框架,该框架简洁灵活,实现了安全策略中的许多动能:Netfilter子系统提供了有状态的或无状态的分组过滤, 网络地址转换(NAT),IP地址伪装, 还具备为高级选路、连接状态管理而变形(mangle)IP 头信息的能力和基于数据类型的连接追踪等。 如果把netfilt
2013-07-22 14:59:25
2155
转载 Shell环境和变量生存期-export和source
如题,关于shell环境和变量生存期,有以下结论:1、执行脚本时,脚本中的语句是在一个子shell环境中运行的,脚本执行完后该子shell自动退出;2、一个shell中的系统环境变量才会被复制到子shell中(用export定义的变量);3、一个 shell中的系统环境变量只对该shell或者它的子shell有效,该shell结束时变量消失(并不能返回到父shell中);3、不
2013-04-19 23:01:21
688
原创 在linux下静态链接库存在,但是在链接过程会出现undefined reference的错误
如题,使用linux编译程序时,需要静态链接库。在链接过程也已指定静态库的路径及库名,且链接器能找到指定的库,但会提示库中被调用的函数undefined reference这是需要检查链接库在链接命令中的位置,要保证依赖该库的中间文件或库在它的前面。即若一个程序需要liba.a libb.a a.o这三个文件链接生成,libb.a依赖liba.a, a.out 依赖 libb.a
2013-04-18 22:16:09
1075
原创 顺序栈的C语言实现
栈是一种重要的数据结构,栈其实也是一种线性表,但是它只能在表尾进行插入和删除。 栈其实就是记录线性表的起始跟结尾,以及表的容量的数据结构。 例如定义一个栈的结构体: typedef struct{ SElemType *base; SElemType *top; int stacksize;}SqStack
2013-03-07 23:25:14
781
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人