自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (18)
  • 收藏
  • 关注

原创 宏定义形式获取两个数最大值和最小值

宏定义形式获取两个数最大值和最小值

2022-07-27 09:17:23 547 1

原创 #、##、__VA_ARGS__和##__VA_ARGS__的作用

一、#用来把参数转换成字符串例子一: #define P(A) printf("%s:%d\n",#A,A);二、##运算符可以用于宏函数的替换部分。这个运算符把两个语言符号组合成单个语言符号,为宏扩展提供了一种连接实际变元的手段 例子一:#define XNAME(n) x ## n 如果这样使用宏:XNAME(8)则会被展开成这样:x8 ##就是个粘合剂,将前后两部分粘合起来,也就是有“字符化”的意思。但是“##”不能随意粘合任意字符,必须是合法的C语言标示符。在单一的宏定义中,最

2022-07-04 15:31:20 200

转载 apache内存池实现

https://www.cnblogs.com/bangerlee/archive/2011/09/01/2161437.html

2021-05-27 14:04:24 141

转载 socket中,调用close会发生什么

转载:https://www.cnblogs.com/kkshaq/p/4456453.html1、server端close之后,client端write,导致server端发送RST(服务器关闭套接字):对方已经关闭或者异常终止,但是client端,不知道,这个成为半打开当server端close套接字的时候,假设此时server端的接受缓冲区没有数据了。则close发送的是FIN分节,client端如果收到FIN之后,调用read函数,是返回0的,因为FIN的接收,表明client端以后再.

2021-03-15 17:17:00 3436

原创 开发环境 -- Linux下查看动态库中是否包含某个函数

一个例子,记录一下,以后会用到

2021-01-19 19:59:41 403

原创 shell脚本中for、while用法

1、for循环 for循环的运作方式,是讲串行的元素意义取出,依序放入指定的变量中,然后重复执行含括的命令区域(在do和done 之间),直到所有元素取尽为止。for的语法结构如下:for 变量 in 串行do 执行命令done例1:用for循环在家目录下创建a1-a10,然后在a1-a10创建b1-b10的目录#!/bin/bashfor a in {1..10}do mkdir /datas/a$a cd /datas/...

2020-08-19 09:40:46 346

原创 coredump文件重定向、以及设置coredump压缩的方法

1、设置coredump重定向ulimit -c unlimitedecho "/mnt/core-%e-%p-%t" > /proc/sys/kernel/core_pattern2、设置core文件压缩的方法exec gzip - > /mnt/core-$1-$2-$3.gz$1表示第一个参数;$2表示第二个参数;$3表示第三个参数;...

2020-07-29 11:04:38 1083

原创 c语言位域总结

有时我们存储信息时并不需要用到一个完整的字节,而只需要几个二进制位。C语言提供了一种数据结构,称为位域(位段)用于这种情况。定义:struct name{ 类型名 位域名:位域长度; // 位域长度不能大于8(即一个字节) };注意:一个位域必须存储在同一个字节中,当有两个连续的位域,在一个字节中存放第一个位域后剩下的空间不足以存放第二个位域,则第二个位域将存放在一个新的字节中,前一个字节多余的未补0struct bits{ int a:4; // 第一个字节

2020-07-07 16:40:34 853

转载 sprintf与snprintf区别

sprintf的原型如下int sprintf(char *str, const char &format, ...);sprintf是字符串格式化命令,主要功能是把格式化的数据写入字符串str中,返回值为写入str的字节数,结束字符‘\0’不计入内。其中,str是指要写入的缓冲区,format控制要写入str中数据的格式,例如%s、%d、%x等。snprintf的原型:int snprintf(char *str, size_t size, const char *fo...

2020-06-22 19:18:11 264 1

转载 socket编程中write、read和send、recv之间的区别

一旦,我们建立好了tcp连接之后,我们就可以把得到的fd当作文件描述符来使用。由此网络程序里最基本的函数就是read和write函数了。ssize_twrite(int fd, const void*buf,size_t nbytes);write函数将buf中的nbytes字节内容写入文件描述符fd.成功时返回写的字节数.失败时返回-1. 并设置errno变量. 在网络程序中,当我们向套接字文件描述符写时有两可能.1)write的返回值大于0,表示写了部分或者是全部的数据. 这样我们用一个whil.

2020-06-19 14:23:16 408

转载 /etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc 文件的作用

转载自:http://blog.csdn.net/u013968345/article/details/21262033/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置./etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信...

2020-06-09 19:43:13 308

转载 Linux进程环境表相关知识

Linux进程环境表1.环境表  每个进程都有一个环境表,存储当前进程的环境变量。每个环境变量由“name=value”这样的字符串组成。环境表的内存布局:  2.环境表的操作函数  char * getenv(const char *name);    该函数用来获取名字为name的环境变量值,不存在时返回NULL。  int putenv(const char * string);    该函数用来改变或增加环境变量的内容。参数string的格式为“name=valu..

2020-06-06 11:26:44 276

原创 快速排序

1.3、快速排序1、快速排序为什么比冒泡排序速度快?如何选取快速排序的哨兵?怎么样选效率会更高?快速排序有三个重要的值,两个坐标date[i],date[j],一个哨兵。和哨兵比较,比哨兵小的放在哨兵前面,比哨兵大的放在哨兵后面;在比哨兵大的集合里面,再找一个哨兵;在比哨兵小的集合里面,再找一个哨兵。这就是一种递归思想找到23,这个23就是需要找的第一...

2020-05-05 14:19:41 443

转载 epoll使用

https://www.cnblogs.com/fnlingnzb-learner/p/5835573.html

2020-04-29 20:04:47 279

转载 json学习以及C语言的json库使用

json学习以及C语言的json库使用https://www.cnblogs.com/liunianshiwei/p/6087596.html

2020-04-27 18:14:08 165

原创 socket阻塞与非阻塞情况下的recv、send、read、write返回值

recv:阻塞与非阻塞recv返回值没有区分,都是<0:出错,=0:连接关闭,>0接收到数据大小,特别:非阻塞模式下返回 值<0时并且(errno==EINTR||errno==EWOULDBLOCK||errno==EAGAIN)的情况 下认为连接是正常的,继续接收。只是阻塞模式下recv会阻塞着接收数据,非阻塞模式下如果没有数据会返回,不会...

2020-04-15 15:31:34 1268

原创 记录操作系统中各种类型变量所占的内存空间大小

记录操作系统中各种类型变量所占的内存空间大小

2020-04-13 17:07:17 527

原创 Linux下的五种IO模型总结

Linux下的五种IO模型总结常见的5种模型主要有:阻塞式I/O非阻塞式I/OI/O复用(select,poll,epoll等)信号驱动式I/O(SIGIO)异步I/O(POSIX的aio_系列函数)在介绍这5种模型之前,先要理解同步、异步、阻塞、非阻塞的概念。同步、异步是个操作方式,阻塞非阻塞是线程的一种状态。所谓同步就是一个任务的完成需要依赖另外一个任...

2020-02-11 17:13:46 265

原创 makefile总结1

gnu make工具的Makefile中$(SRC:%.c=%.o)的含义:将SRC变量中所有以.c结尾的文件名替换成对应的以.o结尾的文件名,然后赋回给SRC

2020-01-10 10:11:06 175

原创 linux中关于/proc下面的相关内容介绍

这篇文章写一下以前整理的查看系统资源、性能的一些命令。本来那时就想系统地整理的,但事多人懒没去做,现在就简单写写。查看CPU:# cat /proc/cpuinfo该命令可以查看系统CPU有多少个核,频率,特性等等。查看cpu内核频率# cat /proc/cpuinfo |grep MHz|uniqcpu MHz : 27518.499查看内存:#cat /proc/memi...

2019-09-12 17:35:38 262

转载 stderr和stdout区别

stdout是默认向到屏幕,但是可以将标准输出重定向到磁盘文件有区别。stdout -- 标准输出设备 (printf("..")) 同 stdout。stderr -- 标准错误输出设备两者默认向屏幕输出。但如果用转向标准输出到磁盘文件,则可看出两者区别。stdout输出到磁盘文件,stderr在屏幕。今天又查了一下fprintf,其中对第一个参数stderr特别感...

2019-08-04 23:22:43 496

转载 errno和strerror用法

1.errno头文件:include<errno.h> errno用于Linux下的错误捕获,在运行creat(),open(),write()之类的函数时有些时候会调用失败返回-1,这时候若在程序中include<errno.h>这个头文件,每次发生错误时,系统会自动用错误代码填充errno这个全局变量。这对于调试程序有很大帮助。errno的错误...

2019-08-04 23:22:12 449

转载 typedef 结构的问题

在使用typedef时,会遇到的一个小问题当用下面的代码定义一个结构时,编译器报了一个错误,为什么呢?莫非C语言不允许在结构中包含指向它自己的指针吗?请你先猜想一下,然后看下文说明:typedef struct tagNode{ char *pItem; pNode pNext;} *pNode;答案与分析:1、typedef的最简单使用typedef long byt...

2019-08-04 23:21:07 128

原创 printf、fprintf、sprintf用法和却别;

1: fprintf()#include <stdio.h>int fprintf( FILE *stream, const char *format, ... );fprintf()函数根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件.因此fprintf()可以使得信息输出到指定的文件.比如char name[20] = "Mary";...

2019-08-04 14:16:55 83

原创 WinSCP无法用root用户登陆linux服务器

1.编辑 /etc/ssh/sshd_config文件: sudo vi /etc/ssh/sshd_config将PermitRootLogin 的值改成 yes将PermitEmptyPassword 的值改成 no保存退出 2.重启ssh:sudo service ssh restart3.即可在WinSCP用root用户登陆...

2019-04-07 22:01:26 811

原创 H264DPB的总结

贴一篇关于DPB介绍的文章,很详细https://wenku.baidu.com/view/63fab483e53a580216fcfeef.html一般的H264 码流以 2个参考帧居多,从mediainfo 中可以看到: Format setting : ReFrames : 2frames。个人理解这个参数是指一个GOP中参考帧的个数,比如说,是否是P帧只参考前面的I 帧与相邻...

2019-03-05 19:32:04 1614

原创 通过Makefile传参数到代码中

在makefile中添加CFLAGS += -DXXX 程序代码中的条件编译 #ifdef XXX  printf("XXX is define!\n"); #endifXXX就可以实现传递到代码中

2018-10-19 19:09:45 2067

转载 C语言深度解剖相关课后问题解答

转载自:http://see.xidian.edu.cn/cpp/html/483.html

2018-04-10 15:47:48 525

原创 C语言中sizeof和strlen的区别

1、sizeof和strlen的区别sizeof是返回变量所占的内存大小,以字节为单位,strlen是计算字符串长度,以‘\0’作为结束符。举例:char str[20]="0123456789"; int   a=strlen(str); /*a=10;strlen 计算字符串的长度,以\0'为字符串结束标记。 int   b=sizeof(str); /*b=20;sizeof 计算的则是分配...

2018-04-09 17:30:33 237

转载 ubuntu下的快捷键

1、快捷键方式ctrl + alt + T          当前目录为 /home/&lt;用户名&gt;2、鼠标右键打开在终端窗口中执行以下命令: sudo apt-get install nautilus-open-terminal sudo reboot 重启后在你想要打开Terminal的目录单击鼠标右键,选择Open in Termainal3、在同一个窗口打开多个终端当你已经打开一个...

2018-03-08 10:48:34 405

原创 C语言中fopen和fwrite函数

fopen()函数:1.作用: 在C语言中fopen()函数用于打开指定路径的文件,获取指向该文件的指针。2.函数原型:mode有以下几种方式:打开方式说明r以只读方式打开文件,该文件必须存在。r+以读/写方式打开文件,该文件必须存在。rb+以读/写方式打开一个二进制文件,只允许读/写数据。rt+以读/写方式打开一个文本文件,允许读和写。w打开只写文件,若文件存在则长度清为0,即该文件内容消失,若...

2018-03-06 16:01:31 2219 2

原创 C语言中r和rb读写文件的区别

"r"    为读而打开文本文件"rb"  为读而打开二进制文件 一般使用方式如下:12FILE *fp;  // 定义一个&lt;a href="https://www.baidu.com/s?wd=%E6%96%87%E4%BB%B6%E6%8C%87%E9%92%88&amp;tn=44039180_cpr&amp;fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y...

2018-03-06 15:55:43 8171

转载 Linux中关于 -- Bootloader , Uboot的作用,和整个linux系统的启动过程分析

1. Bootloader作用PC机中的引导加载程序由BIOS(其本质是一段固件程序)和GRUB或LILO一起组成。BIOS在完成硬件检测和资源分配后,将硬盘中的引导程序读到系统内存中然后将控制权交给引导程序。引导程序的主要任务是将内核从硬盘上读到内存中,然后跳转到内核的入口点去运行,即启动操作系统。简单地说,BootLoader就是在操作系统运行之前运行的一段小程序。通过这段小程序,可以初始化硬...

2018-03-02 18:21:20 613

原创 C语言中i=i+1和i+=1的本质和区别

两种的写法都是是i加1,但是前者计算出右值后会存入一个临时变量然后赋给左侧的 i, 而后者是在 i 本身上做计算, 所以效率会有一点点提升

2018-01-27 14:59:57 14076 1

转载 C语言中关于break和continue的使用说明

使用c语言也有一段时间了,关于break和continue的使用一直都不清楚。但是再阅读别人的代码的时候,关于break和continue的意思总是模棱两可。看都这样,谈何写!?借这个机会,在这里把break和continue的用法做个明朗点的总结,以资以后使用。一、1.break语句通常用在循环语句和开关语句中。当break语句用于开关语句switch中时,可使程序跳出switc

2018-01-27 14:09:06 548

winscp514.rar,便捷的windows和linux之间文件传输工具,使用简单

winscp514.rar,便捷的windows和linux之间文件传输工具,使用简单,传输速度快,不用进行复杂配置。

2018-05-30

解析Quartus II编译错误Can't place multiple pins assigned

解析Quartus II编译错误Can't place multiple pins assigned,解析Quartus II编译错误Can't place multiple pins assigned

2018-04-09

Verilog基础语法讲解

Verilog基础语法讲解,Verilog基础语法讲解,Verilog基础语法讲解,Verilog基础语法讲解

2018-04-09

JLinkARM_V468安装包

JLinkARM_V468安装包,JLinkARM_V468安装包,JLinkARM_V468安装包

2018-04-09

Setup_JLink_V500安装包

Setup_JLink_V500安装包,Setup_JLink_V500安装包,Setup_JLink_V500安装包

2018-04-09

STM32程序下载方法及keil使用方法

STM32程序下载方法及keil使用方法,STM32程序下载方法及keil使用方法,STM32程序下载方法及keil使用方法

2018-04-09

3V-5V电平转换

3V-5V电平转换、3V-5V电平转换,3V-5V电平转换,3V-5V电平转换

2018-04-09

DSP硬件调试经验与个人心得

DSP硬件调试经验与个人心得,DSP硬件调试经验与个人心得,DSP硬件调试经验与个人心得

2018-04-09

I2S协议规范

I2S协议规范, I2S协议规范, I2S协议规范, I2S协议规范

2018-04-08

ASCII码表完整版

ASCII码表完整版,适合随时查阅,适合随时查阅,,,,,,

2018-04-08

生成sin函数表

生成sin函数表,简单可靠,简单容易使用,简单简单简单

2018-01-27

友善串口调试助手

友善串口调试助手,绿色版,可以免安装,使用简单容易

2018-01-27

Avalon_Wishbone总线转换桥的设计

verilog_IEEE官方标准手册,高清PDF版本,便于学习使用

2018-01-27

CCS 的几项基本操作

CCS 的几项基本操作,简单有效的工具,便于快速掌握CCS

2018-01-27

matlab指令合集

matlab指令合集,常用的matlab指令,快速上手Matlab,新手必备

2018-01-27

自学Matlab必备的60个小程序代码

自学Matlab必备的60个小程序代码,快速掌握Matlab,学会经典的Matlab算法

2018-01-27

空空如也

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

TA关注的人

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