ZhengboCai
码龄15年
关注
提问 私信
  • 博客:232,182
    社区:12,077
    244,259
    总访问量
  • 15
    原创
  • 1,045,827
    排名
  • 67
    粉丝
  • 0
    铁粉

个人简介:热爱it

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:安徽省
  • 加入CSDN时间: 2010-01-01
博客简介:

abo8888882006的专栏

查看详细资料
个人成就
  • 获得59次点赞
  • 内容获得26次评论
  • 获得128次收藏
创作历程
  • 1篇
    2014年
  • 3篇
    2013年
  • 2篇
    2012年
  • 4篇
    2011年
  • 60篇
    2010年
TA的专栏
  • C/C++
    24篇
  • C/C++常用算法总结
    10篇
  • linux
    32篇
  • 操作系统原理
    21篇
  • 电子电路知识
    1篇
  • 设备驱动开发
    17篇
  • Git
    2篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

180人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

omaipap open source code

发布资源 2014.08.07 ·
zip

OMA 文档 简介 概述

发布资源 2014.08.04 ·
7z

ERP 相关资料 未整理

发布资源 2014.08.04 ·
zip

char 与 unsigned char的本质区别

char 与 unsigned char的本质区别在C中,默认的基础数据类型均为signed,现在我们以char为例,说明(signed) char与unsigned char之间的区别首先在内存中,char与unsigned char没有什么不同,都是一个字节,唯一的区别是,char的最高位为符号位,因此char能表示-128~127, unsigned char没有符号位,
转载
发布博客 2014.02.10 ·
873 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

UNIX网络编程卷2:进程间通信(中文版)

发布资源 2014.01.13 ·
pdf

Git branch的分析

1). Commit相当于是一个快照,可以理解为是一个指向tree对象(记录当前版本文件系统,文件系统可以用tree来描述)的指针。Commit message是对commit的一个概要描述,如果要引用commit,需要通过该commit的SHA1来引用。2). Branch其实是一个指向commit的指针。但是branch和commit并不是一一对应的关系,因为直到你切换branch之前
转载
发布博客 2013.10.07 ·
1978 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

Git 的origin和master分析

Git 的origin和master分析  http://lishicongli.blog.163.com/blog/static/1468259020132125247302/ 首先要明确一点,对git的操作是围绕3个大的步骤来展开的(其实几乎所有的SCM都是这样)1.     从git取数据(git clone)2.     改动代码3.     将改动传回git(
转载
发布博客 2013.10.07 ·
77728 阅读 ·
39 点赞 ·
13 评论 ·
85 收藏

linux socket编程示例

比较经典的linux socket编程示例,通俗易懂,深入浅出
原创
发布博客 2013.10.05 ·
1096 阅读 ·
1 点赞 ·
2 评论 ·
1 收藏

浅谈linux2.4 内核中断下半部分(softirq机制)

linux2.4 内核中断下半部分(bottom half)理解(请结合linux2.4内核代码看):首先先说一下为什么要采用中断下半部分:中断服务函数大多需要在关中断的情况下去执行,但是有的中断服务函数执行需要较长的时间,如果系统长时间关中断就会让其他的中断得不到响应,所以把需要关中断执行的部分放到中断的上部分,而把对实时性要求不高,不需要关中断执行的操作放到中断下半部分中去。但是中
原创
发布博客 2012.10.10 ·
860 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

工作中的主观臆断

昨天遇到linux2.6下webs命令不能使用的情况,但是在另一个项目上是能用的,两个项目上的uboot、内核都是一样的,唯独文件系统是裁剪过的,于是首先定位是文件系统的问题。一点一点恢复文件系统后(主要是lib下面的东东),发现还是不行。这期间怀疑过应用的问题,但是应用的程序放到另一个项目上又是能用的,没办法,搞不定,最后老大出马了,首先他和我思路是一样的,把能用的文件系统一点一点的添加到裁剪的
原创
发布博客 2012.01.12 ·
1433 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

mkimage能用交叉编译编译后到板子上运行吗

有那位大侠用过把mkimage这个工具用交叉编译器编译出来,然后在目标板上运行制作ramdisk的吗?
原创
发布博客 2011.12.27 ·
758 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

从大端模式buf中提取想要的位数


#define EXTRACT_32(_X)     (((U32)*(_X+0) << 24) | ((U32)*(_X+1) << 16) | ((U32)*(_X+2) <<  8) | ((U32)*(_X+3) <<  0))
#define EXTRACT_32N(_X)     ((*(_X+3) << 24) | (*(_X+2) << 16) | (*(_X+1) <<  8) | (*(_X+0) <<  0))
#define EXTRACT_24(_X
转载
发布博客 2011.04.05 ·
765 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

设置ip及dns过程中,形如"192.001.000.020"设置不成功,需转换为"192.1.0.20"


//设置ip及dns过程中,形如"192.001.000.020"设置不成功,需转换为"192.1.0.20"
CSUDI_Error_Code CSUDITcpipStrToIp(const char * pStr, char * pIp)
{
 unsigned int TmpNum[4] = {0};

 if (CSUDI_NULL == pStr || CSUDI_NULL == pIp)
 {
        re
原创
发布博客 2011.03.29 ·
892 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

在考虑大小端时拷贝数据

大端模式  所谓的大端模式,是指数据的低位(就是权值较小的后面那几位)保存在内存的高地址中,而数据的高位,保存在内存的低地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放; 小端模式  所谓的小端模式,是指数据的低位保存在内存的低地址中,而数 据的高位保存在内存的高地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。/* * Transform the message X which consis
原创
发布博客 2011.03.28 ·
900 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

二进制数字符串转化为二进制数


如何将一个二进制形式的数字字符串(如“10101010”)转化成二进制的数据类型(以char型为例)?
答:想到移位的方法。
char s[] = "10101011"
char s8 = 0;
for(i = 0;i < 8; i++)
{
    if(s[i] == '1')
    {
        s8 |= (1 << i);
    }
}
原创
发布博客 2010.08.04 ·
1610 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

采用选择排序法对链表进行排序,注意交换操作中不是对链表里某一节点里的某一元素进行交换,而是对两节点指针的交换

/*结构体定义*/struct stu{    int StuID;//    char name[10];//    int sex;//    int years;//    struct stu *next;   }; /****************************************************************   Function Name
原创
发布博客 2010.05.23 ·
1526 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

kthread_run()和kthread_stop()函数

1 使用kthread_create创建线程:    struct task_struct *kthread_create(int (*threadfn)(void *data),                                       void *data,       const char *namefmt, ...);这个函数可以像printk一样传入某种格式
转载
发布博客 2010.05.17 ·
13859 阅读 ·
3 点赞 ·
0 评论 ·
7 收藏

如何导出内核模块符号以及如何引用导出的符号

以下是file1.c文件:#include#includeMODULE_LICENSE("Dual BSD/GPL");int add_integar(int a, int b){ return a+b;}int sub_integar(int a, int b){ return a-b;}/*导出符号*/EXPORT_SYMBOL(add_integar);EXPORT_
原创
发布博客 2010.04.17 ·
3449 阅读 ·
0 点赞 ·
1 评论 ·
2 收藏

浅析container_of(ptr, type, member)

浅析container_of(ptr, type, member)#define container_of(ptr, type, member) ({                  /    const typeof( ((type *)0)->member ) *__mptr = (ptr);    /    (type *)( (ch
转载
发布博客 2010.04.16 ·
908 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

GCC编译关键字“__attribute__”

让GCC编译关键字“__attribute__”给你带来方便  直接引入我们的主角(粗体部分):   int    my_printf (void *my_object, const char *my_format, ...)    __attribute__ ((format (printf, 2, 3)));   my_printf是一个你自己写的函数,比如可能是对vsnprintf等函数进行
转载
发布博客 2010.04.15 ·
991 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多