自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (1)
  • 收藏
  • 关注

原创 rootfs根文件系统扫盲

linux的根文件系统

2023-01-08 15:47:52 1422

原创 有序循环链表的插入(数据由小到大)

1. 判断是不是只有一个头结点 2. 插入的元素是最小元素 3. 插入的元素在中间或者为最大者**注:头结点需分配动态内存;插入的元素也要分配动态内存;#include<iostream>using namespace std;typedef struct TNode{ int data; struct TNode* next;}TNode;...

2019-04-21 19:52:55 2607 1

原创 逐行读取文本文件中数据,并保存在数组中;

代码实现如下:/***************************************************************************** Prototype : ReadParaCfgFile Description : 读取使能配置文件 Input : None Output : None Return Valu...

2019-04-20 15:38:12 2960

原创 Debug版本和release版本的用法

通过makefile 传入宏定义参数DEBUG,打印函数如下:#ifndef DEBUG#define debugprint(format, ...) {\ printf( (char*)format, ##__VA_ARGS__);\ } #else#define debugprint(format, ...)#endif使用方法...

2019-03-18 22:53:11 387

原创 strtoul函数用法 && 文本文件的行数计算

#include<stdio.h>//获取文本文件行数int get_line_num(char *infile){ FILE *fp = NULL; //文件指针 int c, lc = 0; //c为文件当前字符,lc为上一个字符,供结尾判断 。 int lines = 0; //行数统计 fp = fopen(infile, "rb"); //以二进制只读...

2019-03-17 22:49:29 179

原创 字符串连接 和 字符串子串查找的库函数实现

字符串比较,s>t,则返回1;s=t,则返回0;s<t,则返回-1int strcompare(char *s, char *t) /* 字符串比较,s>t,则返回1;s=t,则返回0;s<t,则返回-1 */{ while (*s != '\0') { if (*t != '\0') { if (*s > *t) return 1;...

2018-10-26 13:55:55 670

原创 低频词过滤

Description : 对某一输入的字符串删除出现次数最少的单词,输出删除单词后的字符串Prototype : void GetFilteredString(char* pInString,char** ppOutString)Input Param : char* pInString 输入字符串Output Param : char** ppOutSt...

2018-10-25 15:14:19 2195

原创 将两个整型数组按照升序合并,并且过滤掉重复数组元素

功能: 将两个整型数组按照升序合并,并且过滤掉重复数组元素输入:int * pArray1 :整型数组1int iArray1Num:数组1元素个数int * pArray2 :整型数组2int iArray2Num:数组2元素个数输出:int * pOutputArray:合并后的数组int * iOutputNum:合并后数组元素个数返回:void#include<std...

2018-10-25 14:14:26 4423

原创 功能: 计算两个字符串的最大公共字串的长度,字符不区分大小写

功能: 计算两个字符串的最大公共字串的长度,字符不区分大小写输入:char * pFirstStr //第一个字符串char * pSecondStr //第二个字符串输出:无返回:int。最大公共字串的长度#include<stdio.h>#include<string.h>#include<ctype.h>#include "OJ.h"...

2018-10-25 14:09:15 576

原创 Internet校验和(checksum)算法

发送端: 接收端:static unsigned short chksum(void *dataptr, unsigned short len){ unsigned long acc; unsigned short src; unsigned char *octetptr; acc = 0; octetptr = (unsigned char*)dataptr; ...

2018-09-05 10:27:51 10987

原创 shell脚本重定向和命令命令作为变量值的用法

**重定向: &是一个描述符,如果1或者2前不加&,会被当做一个普通文件。 1>&2 意思是把标准输出重定向到标准错误。 2>&1 意思是把标

2018-09-04 10:26:13 2391

原创 C语言volatile的用法

volatile修饰的变量表明是随时改变的,程序执行时不要进行编译优化,既每次都从变量的地址中读取数据(作用与const相反),不要读取寄存器中的备份。因为访问寄存器的速度要快过SRAM(内存),编译器一般都会做减少存取外部SRAM的优化。 volatile变量的几个例子: 1) 并行设备的硬件寄存器(如:状态寄存器) 2) 中断服务程序中修改供其它程序检测的变量需要加volatile; ...

2018-08-28 14:27:53 2485

原创 c语言中qsort 和 strtok函数用法

一、qsort的定义:自定义排序void qsort( void *s, int cnt, sizeof(s[0], cmp));入参分别为首地址、个数、元素的字节数,排序方式;整型排序: int cmp( const void *a, const void *b) //从小向大 {return(*(int *)a - *(int *)b );}int cmp(...

2018-08-06 20:45:45 206

原创 字符串转化为整形 AtoI函数

要求:遇到第一个非数字字符或者‘\n’ 就结束转化;异常条件就是int溢出,加以判断;开始判断时,跳过空格,tab,‘0’;遇到+-号时候,要注意保留字符位#include<stdio.h>#include<assert.h>int AtoI(const char *p);int main(){ char *str="21474836479"; ...

2018-07-16 09:51:55 269

原创 编程技巧1

一、

2018-04-25 09:18:55 131

原创 FreeRTOS系统知识点分析

一.FreeRTOS系统概念        FreeRTOS是RTOS(实时操作系统)的其中一种,类似的还有uc/OS,RTX等,区别于linux & window系统;二.FreeRTOS的基本概念        1.任务:被称为task,可看做linux系统中的线程,是一个简单的程序。每个任务被赋予一定的优先级,有它自己的一套CPU寄存器的值和自己的栈空间。典型的,每个任务都是一个无限...

2018-04-08 14:15:45 1408

原创 linux根文件系统和其它文件系统的构建

init进程-启动者:内核启动的最后一步是是执行 /sbin/init(文件系统中的可执行程序);init进程可以理解为内核启动的第一个也是仅有的用 户进程,进程号为1,是用户态下所有进程的起点。init进程-作用:init进程会去解析/etc/inittab(设置文件),分别去启动各子进程;文件系统制作:可以使用busybx制作根文件系统,并用相应转变工具生产不同类型的根文件系统映像文件(如ya...

2018-02-25 15:33:56 163

原创 父进程对子进程的监控(SIGCHLD信号与waitpid)

知识点1:子进程退出时既exit(1),内核为子进程保留一定的数据结构,包含进程ID、进程的终止状态(结束状态,退出码)、进程 CPU的使用时间等;如果对此数据结构不进行回收处理,会一直保留在内存中,占用内存的使用,这也是产生僵尸进程产生的原因。                      知识点2:子进程终止时会向父进程发送SIGCHLD信号,父进程对此信号是默认处理,既不管不问,数据结构会一直残...

2018-01-25 16:29:23 2357

转载 uboot的makefile分析

使用的uboot版本是2009.11。  要了解一个linux工程,一般要大致看懂它的makefile文件,我在学习uboot时也是先从其Makefile文件看起的,uboot的主Makefile就有三千多行,还有其他子文件夹中的Makefile。如果想我一样对linux还是个新手,那么一开始接触Makefile可能会很头痛。可以先看一下于凤昌翻译的《GUN Make使用手册》,如果你

2018-01-15 11:29:05 295

原创 LINUX_C编程实战—第十章《进程间的通信》-消息队列

POSIX消息队列:

2017-12-20 10:08:22 178

原创 LINUX_C编程实战-《进程间的通信》-共享内存

共享内存的概念:

2017-11-06 18:37:58 210

原创 LINUX_C编程实战—第十章《进程间的通信》-信号量

信号量的概念:

2017-11-06 18:36:43 405

原创 静态库和动态库的创建和使用

反汇编指令: 1. gcc x.c -g -o x; 2、objdump -S -d ./hello。-g是为了添加调试信息,objdump中的-S选项 为了在显示汇编代码的时候同时显示原来的C语言源代码程序。-d:将所有包含指令的段反汇编-s 将ELF文件格式的所有段以十六进制方式打印出来-h 显示ELF文件段表信息-S:将代码段反汇编的同时,将反汇编代码和源代码交替显示,编译时需要给出-g,即...

2017-10-30 22:13:14 245

原创 LINUX_C编程实战-第十章《进程间通信》-管道

一、进程间的通信(IPC)-管道管道分为无名管道(pipe),有名管道(FIFO)二种;区别:无名管道是存在于内存的特殊文件,而有名管道是一个存在硬盘上的文件无名管道的概念:管道是由内核管理的一个缓冲区,相当于放入内存的一个纸条。管道的一端连接一个进程的输出,这个进程会向管道中放入信息。管道的另一端连接一个进程的输入,这个进程取出被放入管道的信息。当管道中没有信息的话,从管道中读取

2017-10-28 10:39:28 228

转载 内存对齐

本文参考:http://blog.csdn.net/u011939264/article/details/51549338一、内存对齐的原因大部分的参考资料都是如是说的:1、平台原因(移植原因):不是所有的硬件平台都能访问任意地址上的任意数据 的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。2、性能原因:数据结构(尤其是栈)应该尽可能地在自然边界上对齐。 原

2017-10-26 12:48:06 211

原创 大小端系统的验证

目的:验证系统的大小端#includeint main(int argc,char **argv){ unsigned int a=0X12345678; /* 指针是加4个字节*/ printf("%p %p\n",&a,&a+1); unsigned char *p = (char *)&a;//强制类型转换,int * 至 char * /* 指针加1个字节*/ p

2017-10-19 21:18:35 493

原创 实现字符串中重复次数最少字符删除

实现目标:重复次数最少字符串的删除缺点:只能对26个字符进行操作语言:c/c++编写del_min_char函数实现此功能;处理好的字符保存在数组data中;#include#include#includevoid del_min_char( char *p,char *data){ int min,n,i,j=0; int num[200]={0}; n=st

2017-10-17 21:01:32 540

原创 LINUX_C编程实战-第九章《信号》学习笔记

1.信号:顾名思义,信号就是来传递信息的,传递的对象为进程(可用于进程间的通信);可由硬件或软件(使用kill、raise等)产生;终端下使用 kill -l 可以显示linux系统支持的所有信号;信号分为可靠信号和不可靠信号,不会丢失支持排队的为可靠信号,不可靠则非之。 2.信号的处理: 第一种:信号的捕捉;调用的API有signal & sigaction,安装信号处理函数fu

2017-10-10 20:01:17 318

原创 LLINUX_C编程实战-第八章《线程管理》学习笔记

线程的概念线程的创建 int pthread_create(pthread_t id, pthread_attr_t *attr, (void ) function, void *arg ); 入参分别为 线程id, 线程属性(一般为NULL), 线程函数指针,传给线程的参数; 线程的退出:pthread_exit( void * exit_code); 线程的阻塞等待:pthread

2017-09-27 11:42:17 241

原创 LLINUX_C编程实战-第七章《进程管理》学习笔记

进程和程序的区别:进程是操作系统分配资源的最小单元;进程是动态的,程序存在硬盘上为静态的;简而言之,进程是运行的程序。进程的内存映像:操作系统将可执行程序复制到内存地址中,内存地址从低到高依次是:

2017-09-22 17:48:34 249

原创 c/c++基础知识点

知识点: 反汇编指令: 1. gcc x.c -g -o x; 2、objdump -S -d ./hello。-g是为了添加调试信息,objdump中的-S选项 为了在显示汇编代码的时候同时显示原来的C语言源代码程序。

2017-09-07 15:59:17 225

转载 输入、输出之间的区别

出处http://blog.csdn.net/xingjiarong/article/details/47282817 两者在接受字符串时:1.不同点:scanf不能接受空格、制表符Tab、回车等;而gets能够接受空格、制表符Tab和回车等;scanf :当遇到回车,空格和tab键会自动在字符串后面添加’\0’,但是回车,空格和tab键仍会留在输入的缓冲区中。

2016-09-29 09:54:16 4307

linux程序设计手册

linux程序中函数的运用!!

2016-05-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除