C语言编程
qiaoliang328
这个作者很懒,什么都没留下…
展开
-
代码:把0x开头的十六进制字符串转发成数字
/** fn:把0x开头的十六进制字符串转发成数字;*input: 比如 0xFAB00255;* return: 转换后的int 值;*/unsigned int GetUintFromHexStr( char *input ){ unsigned int result = 0; char *ptr; ptr = strstr( input, "0x" ); if( NULL != ptr ) { ptr += 2; ...原创 2021-02-03 10:16:58 · 1708 阅读 · 0 评论 -
Nand Flash基础知识与坏块管理机制的研究
概述Flash名称的由来,Flash的擦除操作是以block块为单位的,与此相对应的是其他很多存储设备,是以bit位为最小读取/写入的单位,Flash是一次性地擦除整个块:在发送一个擦除命令后,一次性地将一个block,常见的块的大小是128KB/256KB,全部擦除为1,也就是里面的内容全部都是0xFF了,由于是一下子就擦除了,相对来说,擦除用的时间很短,可以用一闪而过来形容,所以,叫做Flash Memory。所以一般将Flash翻译为 (快速)闪存。NAND Flash 在嵌...转载 2020-11-30 20:51:27 · 809 阅读 · 1 评论 -
linux线程池的实现与条件变量之间的关系
多个线程 能否同时等待同一个条件变量 ?问题:能不能多个线程同时pthread_cond_wait等待 同一个条件变量?如果另一个线程pthread_cond_signal 对这个条件变量发出信号,这种情况下等待信号的多个线程如何决定那个线程解除阻塞?解答:当然可以啦,话说条件变量不就是让你拿来干这个的吗?要不然pthread_cond_broadcast这个API设计出来给谁用?...原创 2019-11-02 22:44:18 · 132 阅读 · 0 评论 -
输出printf 02X aa 的正确方法
计算机中%X 以补码形式输出解决方法,使用 h 和整数转换说明符一起使用,表示一个shortint或者unsignedshortint类型数值。 示例:“%hu”、“%hx”和“%6.4hd” hh 和整数转换说明符一起使用,表示一个signedchar或者unsignedch...原创 2018-07-08 20:58:19 · 1452 阅读 · 0 评论 -
使用sscanf 提取字符串
char buffer[] = "2423|dfgdfg|329234";char str1[20], str2[20], str3[20];sscanf(buffer, "%[^|]|%[^|]|%s", str1, str2, str3);差不多这样子,%[^|]表示读到|为止,后面|读走紧接着的|,下一个同理,最后%s读走剩余的字符串。实际应用要麻烦很多,要注意str1、st原创 2016-05-19 11:05:02 · 6721 阅读 · 0 评论 -
把busybox 的logread 命令的源文件改成可单独编译
/* vi: set sw=4 ts=4: *//* * circular buffer syslog implementation for busybox * * Copyright (C) 2000 by Gennady Feldman gfeldman@gena01.com> * * Maintainer: Gennady Feldman gfeldman@gena0原创 2012-05-11 17:46:45 · 4728 阅读 · 0 评论 -
linux C语言 串口 上层发送0x0A,底层却发送了0x0D 0x0A两个字节的解决方法
<br />struct termios options;<br /> <br />options.c_iflag &= ~(INLCR | ICRNL | IGNCR);<br />options.c_oflag &= ~(ONLCR | OCRNL | ONOCR | ONLRET); <br /> <br />tcsetattr(fd,TCSANOW,&options);原创 2011-01-20 08:55:00 · 4978 阅读 · 2 评论 -
B树,B-树,B+树,B*树的定义
B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如:B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关键字小转载 2009-11-12 20:14:00 · 754 阅读 · 0 评论 -
fork函数的返回值
fork简介: fork英文原意是“分岔,分支”的意思,而在操作系统中,乃是著名的Unix(或类Unix,如Linux,Minix)中用于创建子进程的系统调用。 【NOTE1】 fork () 的作用是什么?换句话说,你用 fork () 的目的是什么? ――是为了产生一个新的进程,地球人都知道 :)产生一个什么样的进程? ――和你本来调用 fork () 的那个进程基本一样转载 2009-11-11 07:05:00 · 1590 阅读 · 0 评论 -
堆和栈的区别
什么是堆栈 在计算机领域,堆栈是一个不容忽视的概念,但是很多人甚至是计算机专业的人也没有明确堆栈其实是两种 数据结构 。 堆栈都是一种数据项按序排列的数据结构,只能在一端 ( 称为栈顶 (top)) 对数据项进行插入和删除。 要点: 堆:顺序随意 栈 :后进先出 (Last-In/First-Out) 堆和栈的区别 一、预备知识 — 程序的 内转载 2009-11-02 15:20:00 · 681 阅读 · 0 评论 -
sscanf
sscanf名称:sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型:Int sscanf( string str, string fmt, mixed var1, mixed var2 ... );int scanf( const char *format [,argument]... ); 头文件:#include说明:sscanf与s转载 2009-09-28 16:42:00 · 638 阅读 · 0 评论 -
换行符&lsquo;/n&rsquo;和回车符&lsquo;/r&rsquo;的区别
换行符‘/n’和回车符‘/r’的区别 顾名思义,换行符就是另起一行,回车符就是回到一行的开头,我们平时编写文件的回车符应该确切来说叫做回车换行符 --------------------------------------------------------------- 在控制台程序里,回车的本意是将光标移动到屏幕最左边(此时光标的横坐标没有变),换行就是将光标移动到下一行(此时光标的纵坐标转载 2009-09-29 16:25:00 · 5628 阅读 · 0 评论 -
区分大小端
1.说明:大小端的概念:简单来说是指存储器存放数据的顺序。小端是指把低位数据存放在低地址;大端是把低位数据存放在高地址。2.编程:#include int main(){short a=0x1248;char b,c;memcpy(&b,(void *)&a,1);memcpy(&c,(void *)&a+1,1);printf(“short a=0x%原创 2009-09-29 09:45:00 · 935 阅读 · 0 评论 -
C语言添加打印信息
#include #include 1. 在c文件中添加如下源代码static char msg_buf[16*1024];void dump_printf(char *file,int line,char *fmt,...){#if 1 //time_t tt; //struct tm *now; va_list ap; unsigned int fmt_offset = 0;原创 2009-09-23 19:17:00 · 1976 阅读 · 0 评论 -
typedef
typedef typedef用法小结- - 在C语言的情况下,与C++稍有出入。 这两天在看程序的时候,发现很多地方都用到typedef,在结构体定义,还有一些数组等地方都大量的用到.但是有些地方还不是很清楚,今天下午,就想好好研究一下.上网搜了一下,有不少资料.归纳一下: 来源一:Using typedef to Curb Miscreant Code Typedef 声明有助于转载 2009-09-21 17:27:00 · 522 阅读 · 0 评论 -
[转载] C语言中如何使用宏 包括单双井号 可变参数
错误的嵌套-Misnesting宏的定义不一定要有完整的、配对的括号,但是为了避免出错并且提高可读性,最好避免这样使用。由操作符优先级引起的问题-Operator Precedence Problem由于宏只是简单的替换,宏的参数如果是复合结构,那么通过替换之后可能由于各个参数之间的操作符优先级高于单个参数内部各部分之间相互作用的操作符优先级,如果我们不用括号保护各个宏参数,可能原创 2009-08-16 11:51:00 · 848 阅读 · 0 评论