- 博客(14)
- 收藏
- 关注
原创 Linux定时器的实现
Linux定时器的实现 #include #include #include #include #include int count = 0; void set_timer() { struct itimerval itv, oldtv; itv.it_interval.tv_sec = 0; itv.it_interval.
2008-02-28 18:42:00 11046
原创 解析C语言中的sizeof
解析C语言中的sizeof 一、sizeof的概念 sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。 二、sizeof的使用方法 1、用于数据类型 sizeof使用形式:sizeof(type)
2008-02-28 18:24:00 454
原创 Fedora Core 5 内核模块编译
Fedora Core 5 内核模块编译 到http://download.fedora.redhat.com/pub/fedora/linux/core/5/source/SRPMS/kernel-2.6.15-1.2054_FC5.src.rpm下载kernel-2.6.15-1.2054_FC5.src的安装包。(我的内核版本是这个所以就下载的这个版本,你可以用uname -r
2008-02-28 17:58:00 547
原创 链接器如何使用静态库来解析引用
链接器如何使用静态库来解析引用 在符号解析(symbol resolution)阶段,链接器按照所有目标文件和库文件出现在命令行中的顺序从左至右依次扫描它们,在此期间它要维护若干个集合:(1)集合E是将被合并到一起组成可执行文件的所有目标文件集合;(2)集合D是所有之前已被加入E的目标文件定义的符号集合;(3)集合U是未解析符号(unresolved symbols,即那些被E中目标
2008-02-28 17:56:00 1839
原创 链接器如何解析多处定义的全局符号
链接器如何解析多处定义的全局符号 在编译时,编译器输出每个全局符号给汇编器,或者是强,或者是弱,而汇编器把这个信息隐含地编码在可重定位目标文件的符号表里。函数和已初始化的全局变量是强符号,未初始化的全局变量是弱符号。根据强弱符号的定义,Unix链接器使用下面的规则来处理多处定义的符号:规则1:不允许有多个强符号。规则2:如果有一个强符号和多个弱符号,那么选择强符号。规则3:如果有多个
2008-02-28 17:53:00 558
原创 IPC经典问题
IPC经典问题 读者写者问题读者优先:semaphore mutex=1;//控制对rc的访问semaphore db=1;//控制对数据库的访问int rc=1;//正在读或想要读的进程数void reader(void){ while(1){ down(&mutex); rc++; if(rc==1) down
2008-02-28 17:49:00 3134 1
原创 usb枚举过程
usb枚举过程 1.hub向host报告port状态变化,usb设备处于Powered state2.通过向hub查询host判断变化的性质3.如果是有设备插入,host等待至少100ms以保证连接稳定,然后enable和reset端口4.hub保持reset信号10ms,reset后usb设备处于Default state,可以从总线获得不多于100mA电流5.为Default C
2008-02-28 17:38:00 600
原创 数组和指针的区别
数组和指针的区别 数组和指针其实并不相同,数组引用是直接寻址,指针方式引用是间接寻址。在同一文件中使用时看不出来,在不同文件中使用就可以看出来了。 第一种情况: file1.c char p[]="Hello every one"; file2.c extern char *p; 定义了数组 p, 编译器为这个数组分配了内存来放这个数组,并记下这个内存的地址和符号表中的 p 对应 p
2008-02-28 17:28:00 599
原创 U-boot和根文件系统
U-boot和根文件系统 U-boot采用相应的配置文件编译好,注意选择串口地址,是串口1还是串口2(stb7109eref.h),还要选择对应的PIO口(board/stb7109eref.c)。 我采用stb7109平台 make mrproper make stb7109eref_config (include/configs/stb7109eref.h) make 使用调试
2008-02-28 17:15:00 1802
原创 Linux下的I/O模型
Linux下的I/O模型 Linux下数据的读取主要有两步:等待数据到来和把数据从内核层拷贝到应用层。I/O模型分为同步I/O和异步I/O,同步I/O包括阻塞I/O、非阻塞I/O、I/O复用和信号驱动I/O。阻塞I/O指系统调用发起直到数据拷贝到应用层才返回。非阻塞I/O指如果需要等待数据,则返回一个错误,但是从内核到应用的拷贝仍需要等待。I/O复用会先阻塞在select上,有数据可
2008-02-28 17:13:00 829
转载 如何判断一个单向链表是否有环路
如何判断一个单向链表是否有环路 算法:用两个指针,选取两个互素的数作为步长,从表头开始一起往前走,如果相遇,表明有环路,否则就是没有了。#define STEP1 2#define STEP2 1struct list{ int data; struct list *next;} ;BOOL IsLoop(struct list *head){ int i;
2008-02-28 17:10:00 922
转载 Linux下常用CVS命令
Linux下常用CVS命令 1.登录:$export CVSROOT=:pserver:username@the_server_name:/home/cvsroot Note:pserver是访问方式,如果服务器设置的是口令认证,则是 pserver。 username是 CVS服务器的用户名,可以根据你的设置修改; the_server_name是CVS服务器
2008-02-28 17:08:00 633
转载 常用VI命令
常用VI命令 光标控制命令 命令 光标移动h或^h 向左移一个字符j或^j或^n 向下移一行k或^p 向上移一行l或空格 向右移一个字符G 移到文件的最后一行nG 移到文件的第n行gg
2008-02-28 16:39:00 492
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人