- 博客(27)
- 资源 (2)
- 收藏
- 关注
原创 字符串翻转
<br />#include <stdio.h>#include <string.h>void reverse_string(char *str){ char *lastchar; char tmp; for (lastchar = str; *lastchar != '/0'; lastchar++) ; lastchar--; while (str < lastchar) { tmp = *s
2010-06-03 20:14:00
629
原创 删除子串
<br />/*判断第二个字符串是否为第一字符串的子串,如果是,则将该子串删除比如 bissrc = a123afed littlesrc = afe; 返回a123d;*/#include <stdio.h>#include <string.h>#include <stdlib.h>//判断一个字符串是否为另一个的子串,如果是,返回该子串首字母所在的位置//如果不是,返回-1。int findsubstring(char bigsrc[], const char
2010-06-03 20:13:00
1050
原创 查找字符串
<br />#include <stdio.h>#include <string.h>typedef int BOOL;#define true 1#define false 0BOOL findsubstring(const char *bigsrc, const char *littlesrc){ int flagbig = 0; //记录是否至少进行了一次比较 int flaglittle = 0;
2010-06-03 20:11:00
635
原创 linux mmap驱动实现
在实现驱动程序的mmap函数时,要注意映射地址的转换问题,见代码。 定义一个设备结构体:struct leedriver{ struct cdev cdev; unsigned char mem[MEMSIZE];};这里面这个MEMSIZE,最小都要是4096,因为内存映射是以页为单位的。在实现simple_remap_mmap函数时,代码如下stat
2010-05-25 21:55:00
3150
原创 ubuntu下获取命令的源代码
apt-get source `dpkg -S /bin/cat | sed -e s/:.*//g` 该命令获取cat的源代码实现,如果需要其他命令,可以替换 /bin/cat
2010-05-11 10:44:00
1072
1
转载 ubuntu编译内核
文章转自:http://forum.ubuntu.org.cn/viewtopic.php?t=134404 一、下载源代码和编译软件的准备下载内核源代码:http://www.kernel.org/注意,点击2.6.25内核的F版,即完整版。如果你懒得去网站点联接,运行下列命令:代码:$cd ~$ wget http://www.kernel.
2010-05-05 19:55:00
3218
转载 container_of
转载自:http://blog.youkuaiyun.com/yinkaizhong/archive/2009/04/20/4093795.aspx问题:如何通过结构中的某个变量获取结构本身的指针???关于container_of见kernel.h中:/*** container_of -
2010-04-19 20:46:00
2075
原创 [转]浅析ethx网卡控制函数ioctl实现具体流程
本文转载自http://blog.chinaunix.net/u1/38994/showart_1107738.html 浅析ethx网卡控制函数ioctl实现具体流程====================1.应用层程序iwprivwireless tools网络配置应用程序iw
2010-03-04 14:30:00
675
原创 本地 安装 Ubuntu9.10
ubuntu的 硬盘安装 很 早就 尝试过,可惜一直都 没有 成功过,用 grub会 卡 在 initramfs这 个 地方 ,这次仔细的装了一次,google了很久,终于安装成功,过程如下。 1,安装wingrub(略)2,将ubuntu9.10的ISO文件中的casper目录,dists目录,.disk目录解压出来,最好放在根目录下,比如D:/下面,然后将casper中的vmlin
2010-01-31 10:36:00
701
原创 linux使用下使用动态与静态库
感觉对这个有些晕,做了个实验,弄清楚了。 实验思路,用同一份代码编译同时生成动态和静态库,通过测试程序调用,看调用的是动态库还是静态库。 生成静态库代码: /***********hellod.h*************/#ifndef _HELLO_S_H#define _HELLO_S_Hvoid prints(char *str);#endi
2009-12-25 11:17:00
615
原创 linux下动态库与静态库
体验一下linux下编写和使用动态库与静态库,范例:helloworld程序。 首先编写静态库:hellos.h #ifndef _HELLO_S_H#define _HELLO_S_Hvoid prints(char *str);#endif hellos.c#include "hellos.h"#inclu
2009-12-25 10:23:00
605
原创 可重入函数
在多线程条件下,函数应当是线程安全的,进一步,更强的条件是可重入的。一个可重入函数保证了在多线程条件下,函数的状态不会出现错误。eg. in c static int tmp;void swap1(int* x, int* y) { tmp=*x; *x=*y; *y=tmp;}void swap2(int* x, int*
2009-09-28 10:04:00
495
原创 安装mplayer
1,安装主程序进入解压后的目录,./configure --enable-guimake make install2,安装skin进入skin目录,建立default子目录,然后将解压后的skin拷贝到default目录下3,安装字体将windows下的字体拷贝到/root/.mplayer/下,将名字修改成subfont.ttf
2009-09-14 21:29:00
583
原创 wpa_supplicant及openssl移植
一:移植openssl1:将wpa_supplicant下的补丁打到openssl中2:./Configure linux-elf-arm -DB_ENDIAN linux:arm-926ejs-linux-gcc shared --prefix=/mnt/nfs/wapi_wireless/openssl3: make4: make install二:移植wpa_su
2009-07-14 10:33:00
4253
原创 qtopia4.3.2及tslib1.0的移植文档
编译开发板内核时,在make ARCH=arm CROSS_COMPILE=arm-926ejs-linux- menuconfig时,在输入子系统中加入对输入事件的支持。tslib1.0源代码文件位置:/mnt/nfs/source/tslib-1.0tslib1.0安装目标位置:/mnt/nfs/touchscreen/tslib编译tslib# cd tslib-
2009-07-05 10:35:00
1370
原创 TP-LINK TL-WN322G+在linux下的移植
TP-LINK 的TL-WN322G+用的是ZD1211的芯片,虽然FC8中有对这个芯片的支持,不过貌似编译进内核无法使用,只有下载源代码单独编译使用了。一:下载源代码,http://linux.chinaunix.net/techdoc/install/2009/04/24/1108830.shtml二:本地编译,直接make好像就可以过了,没什么问题。三:交叉编译这个是最麻烦的
2009-05-21 15:38:00
3808
原创 关于EXPORT_SYMBOL
linux2.6的“/prob/kallsyms”文件对应着内核符号表,记录了符号以及符号所在的内存地址。模块可以使用如下宏导出符号到内核符号表:EXPORT_SYMBOL(符号名);EXPORT_SYMBOL_GPL(符号名)导出的符号可以被其他模块使用,不过使用之前一定要声明一下。EXPORT_SYMBOL_GPL()只适用于包含GPL许可权的模块。 代码演示://
2009-04-15 15:43:00
19761
5
原创 SDIO驱动在27开发板的移植
在27开发板上做移植,碰到以下问题:1、/sdiostack/src/busdriver/linux/sdio_bus_os.c中第98行的DECLARE_WORK函数缺少参数。2、27的交叉编译器缺少openssl依赖的头文件3、缺少只是openssl的动态连接库文件。 解决办法:1、将源代码中的第99行到103行注释掉,并且在该函数中最后添加NULL参数。2、将92
2009-04-09 09:54:00
1188
原创 无线网卡在i.MX27开发板上的移植
之前的网卡移植是在9261的开发板上做的,貌似27开发板的交叉编译器与普通的有点不一样,在前期进行编译的时候出现很多问题。总结如下 1:在make的过程中,最好明确的指出目标板的体系结构,这次的移植过程中,就是没有注意到这个问题,造成编译中报错。2:最好make所用到的参数写到makefile中,比如第一条所说的ARCH的值还有交叉编译器的值,等等。 这次移植过程中,修改
2009-03-30 10:58:00
729
原创 配置编译内核环境
1:设置交叉编译器的环境变量 export PATH=/opt/freescale/usr/local/gcc-4.1.1-glibc-2.4-nptl-sf-1/arm-926ejs-linux/bin:$PATH 2:第一次编译内核需要导入默认的config file make ARCH=arm CROSS_COMPILE=arm-926ejs-linux-
2009-03-27 10:28:00
1138
原创 网卡驱动编译进内核
最近要做个项目,将一个无线网卡的驱动程序编译进内核中,现总结如下: 1: 将该无线网卡的源代码拷贝到/drivers/net/wireless/下2: 修改/net/wireless/目录下的Kconfig和Makefile。 Kconfig修改如下: 增加 config V2 tristate "V2"
2009-03-27 10:18:00
1730
原创 fedora 8 安装配置
一:硬盘安装1:下载fedora 8的ISO文件2:将ISO文件中的vmlinuz和initrd.img文件解压到根目录3:进入grub,依次输入: find /vmlinuz这时候会显示内核压缩文件所在的地方,然后 root (hdx,y) 这里的(hdx,y)就是上面显示的那个接着: kernel /vmlinuz initrd /initrd.img bo
2008-09-08 10:02:00
779
原创 《C和指针》第一章读书笔记
关于警告: 1. 在scanf函数的标量参数前未添加&字符。 2. 机械的把printf函数的格式代码照搬于scanf函数。 3. 在应该使用&&操作符的地方误用了&操作符。 4. 误用=操作符而不是==操作符来测试相等性。关于编程: 1. 使用#include指令避免重复声明 2. 使用#define指令给常量值取名。 3. 在#include指令中放
2008-08-31 20:25:00
593
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人