自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(189)
  • 收藏
  • 关注

原创 指针打印%p

指针打印%p

2024-02-01 10:29:02 435

原创 数组和指针容易犯的错误

mem_buf 等同于 &mem_buf[0] 并等同于 mem_buf ,这里的本意是(VOID **)&mem_buf 是双指针指向数组的首地址,但是如果填写&mem_buf 这仅仅是单指针。

2024-02-01 09:54:44 367

原创 Ubuntu 更改文件夹及子文件夹权限

打开终端进入你需要修改的目录然后执行下面这条命令chmod 777 * -R 文件夹名字全部子目录及文件权限改为 777查看linux文件的权限:ls -l 文件名称查看linux文件夹的权限:ls -ld 文件夹名称(所在目录)...

2021-11-16 10:06:01 2366

原创 memset赋值特别需要注意的地方

typedef unsigned short Long_unsigned;typedef unsigned char Unsigned;//时间日期typedef struct datetime_s{ Long_unsigned year; Unsigned month; Unsigned day; ...

2020-04-29 18:48:43 688

原创 定义的结构体里面如果有链表,定义一个变量切记陷阱(需要用指针方式这样方便分配给链表空间)!

例子 如下定义了一个结构体,结构体里面包含链表Listscheme_frame_list,那么定义此结构体变量时不可以用SCHEME_CONTENT aa;(不可以,因为没有给链表分配空间)需要定义为指针类型,如: SCHEME_CONTENT_PTR ptrp = (SCHEME_CONTENT_PTR)malloc(sizeof(SCHEME_CONTENT)); ...

2020-04-27 20:27:29 518 1

原创 linux动态库链接语句(设置) export LD_LIBRARY_PATH

在./执行程序时会提示找不到库,此时需要在里面手动敲打一个export命令例如:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/mqtt/MQTT-c/lib红色字体是你需要替换的动态库绝对目录...

2020-04-05 11:08:04 4259

原创 交叉编译(以libmxml.a举例,在网上找到相应的压缩包以后)

交叉编译 (/lib:动态库和静态库,将最终生成的lib和include文件夹拷贝出来提供给程序编译和程序运行时使用。)在ubuntu中使用minixml自带的configure配置生成Makefile并编译libmxml库。2.1、编译ttu环境使用的libmxml.a,步骤如下:1、在Ubuntu环境中,将mxml-2.12.tar.gz拷贝到Ubuntu目录,比如拷贝到:/home/...

2020-03-27 00:11:53 1121

原创 Linux下指定so动态库的加载路径的5种方法种的指定环境变量方法详解!!!(.bashrc和 /etc/profile )

首先简单说一下什么是环境变量?环境变量简单的说就是当前环境下的参数或者变量。如果说的专业一点就是指在操作系统中用来指定操作系统的一些参数。    举个我们最常见的环境变量 —— PATH,它的用途就是当用户要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下寻找此程序外,还要到PATH变量中指定的路径去寻找。用户可以通过设置PATH变量,来更好的运行进程。举个常见的例...

2020-03-16 14:47:52 1905

原创 Linux下指定so动态库的加载路径的5种方法!!!

一、库文件的搜索路径:1、在配置文件/etc/ld.so.conf中指定动态库搜索路径(需要添加其它库文件的路径,在文件的最后添加具体的路径即可 [ 如:/usr/local/lib ],添加后保存退出,然后在命令行ldconfig2、通过环境变量LD_LIBRARY_PATH指定动态库搜索路径(当通过该环境变量指定多个动态库搜索路径时,路径之间用冒号":"分隔)3、在编译目标代码时指...

2020-03-09 22:04:10 16097

原创 Linux命令修改文件名和文件夹名

Linux修改文件名语句:mv oldFileNamenewFileName示例:我想把 aaa1.txt修改为 bbb1.txt示例语句:mvaaa1.txtbbb1.txt把当前目录下的file1文件名改成file2,如果该目录下有file2,则覆盖以前的file2文件。...

2020-03-09 16:49:23 4838

原创 linux的各种自带库-lz -lrt -lm -lc都是什么库

编译链接库:-lz -lrt -lm -lc都是什么库lz 压缩库(Z)lrt 实时库(real time):shm_open系列lm 数学库(math)lc 标准C库(C lib)-dl ,是显式加载动态库的动态函数库...

2020-01-31 11:56:54 3727

原创 C语言如何将字符串转十六进制

通过查ASCII表知道:'a'对应的十六进制是是0x61,'A'对应的十六进制是0x41,'f'对应的十六进制是是0x66,'F'对应的十六进制是0x46,'0'对应的十六进制是是0x30,'9'对应的十六进制是0x39,其实这里的十六进制就是由字符对应的ASCII码转换得来的,下面主要讲下如何将数字0~9和26个英文字母转换成十六进制并存到数组中,直接贴代码分析。void StringToH...

2019-12-18 10:30:37 4105

原创 linux编译:提示/usr/bin/ld: can not find -lsqlite3 的解决办法

编译程序提示缺少sqlite3的情况下,如果在其他arm编译器下有现成的库,可以直接拷贝过来。sudo cp /opt/arm-2008q3/arm-none-linux-gnueabi/libc/armv4t/lib/libsqlite3.so /opt/arm-2013.11/arm-none-linux-gnueabi/libc/armv4t/lib/如下:有两个编译器 arm...

2019-12-03 12:03:08 1807

原创 linux_gcc编译器安装详细说明(arm-2013.11-33-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2举例)

1 在官网https://www.veryarm.com/arm-none-linux-gnueabi-gcc下载解压版arm-2013.11-33-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2sudo tar -xvf arm-2013.11-33-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar...

2019-12-03 10:45:58 611

原创 UDP和TCP总结

INADDR_ANY 、INADDR_LOOPBACK 、INADDR_BROADCAST这三个常量在文件中的定义如下:#define INADDR_ANY (u_long)0x00000000#define INADDR_LOOPBACK 0x7f000001#define INADDR_BROADCAST (u_long)...

2019-12-02 15:52:01 178

原创 递归复制 copy(cp)命令注意

root@dc:/media/dataindex# cp -r /media/dataindex/apptemp/. /media/dc/mt_tmnl698/app_zt/root@dc:/media/dataindex# cp -r /media/dataindex/apptemp/. /media/dc/mt_tmnl698/app_zt/root@dc:/media/dataindex...

2019-11-06 09:32:49 3555

原创 字符串二维数组作为函数的参数 void func(int (*mat)[10]);

字符串数组:比如 char a[3][24]={"hello","goodbye","goodb"};如果想把此字符串数组传出去void func(char (*mat)[24]);版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/u010383519/article/d...

2019-08-21 14:33:27 909

原创 linux怎么复制文件和复制文件夹

1 只复制一个文件cp /media/dataindex/collection /usr/bin/2 递归复制文件夹里面的所有内容cp -r /media/dc/log/ /media/dataindex

2019-07-05 09:54:10 5765 1

转载 多个动态库的依赖问题(先后顺序务必注意)

链接的库文件中又使用了另一个库文件 这种问题比较隐蔽,也是我最近遇到的与网上大家讨论的不同的问题,举例说明如下,首先,还是看看测试代码。 从上图可以看出,main.c调用了test.c的函数,test.c中又调用了fun.c的函数。 首先,我们先对fun.c,test.c,main.c进行编译,生成 .o文件。gcc -c func.c gcc -c test...

2019-06-17 19:49:08 9475

原创 指针易犯错的地方--self标记

TRANS_PROCESS是全局变量bool trans_carrier_frame(char retry, byte timeout, byte *frame, int length, byte* outbuff,int* outlen){ TRANS_PROCESS.outbuff =outbuff;byte BUFFER_FRAME[2] ={0,1};memcpy(TRA...

2019-06-12 15:50:05 139

原创 动态库编写 头文件.h注意事项

比如 log.h log.c 其中log.h 就几个函数的定义,用到的头文件很少。但是log.c文件里面会有很多函数的实现,用到比如 #include <string.h>#include <time.h>#include <limits.h>#include <signal.h>#include <unistd....

2019-05-30 18:56:51 3994

原创 修改一个文件夹下面所有文件和文件夹的属性--chmod -R 777 app_zt/

chmod -R 777 app_zt/app_zt/此文件夹

2019-05-29 17:07:28 23452

原创 如何在linux中运行中定义lib的路径在makefile里面

场景:比如执行程序testlog需要用到liblog.so,但是testlog在运行当中提示找不到所需要的动态库文件liblog.so(放在了/media/dc/mt_tmnl698/lib_zt目录)此时需要在编译testlog时的makefile需要改进如下:红色字体 定义运行时的路径TARGET_LIB_DIR =/media/dc/mt_tmnl698/lib_ztTA...

2019-05-29 14:11:34 3588

原创 static修饰的函数只能在本文件中调用,其他文件想调用怎么办?

static修饰的函一句话总结:static修饰的变量和函数是有可见范围的,一般情况下不要越限处理。利用可在本文件调用的属性,另加一个函数fun,fun调用该static函数;其他文件调用fun即可数只能在本文件中调用,其他文件想调用怎么办?...

2019-05-22 16:03:33 4118

转载 c++中函数声明的后面加=0

纯虚函数是在声明虚函数时被“初始化”为0的函数。声明纯虚函数的一般形式是 virtual 函数类型 函数名 (参数表列) =0;注意: ①纯虚函数没有函数体;          ②最后面的“=0”并不表示函数返回值为0,它只起形式上的作用,告诉编译系统“这是纯虚函数”;           ③这是一个声明语句,最后应有分号。纯虚函数只有函数的名字而不具备函数的功能,不能被调用。它只...

2019-02-11 16:26:36 1422

转载 std::string用法总结

在平常工作中经常用到了string类,本人记忆了不好用到了的时候经常要去查询。在网上摘抄一下总结一下,为以后的查询方便:string类的构造函数:string(const char *s);    //用c字符串s初始化string(int n,char c);     //用n个字符c初始化string类的字符操作:const char &amp;operator[](int n)c...

2019-02-11 16:26:01 617

转载 浅谈C++类中的公有和私有

最忌讳的就是利用C++写C代码!利用C++写C代码最主要的一个特点之一把类里面所有的数据都声明成public的,本文就浅谈了一下如何利用public和private将代码分开的方法~~~#define:  1.关键字public可以将类的成员说明为是公有的,及可以被该类的所有成员所访问;  2.关键字private可以将类的成员说明为是私有的,它不能直接被对象访问。  其实,说白了就...

2019-02-11 14:37:22 5607 1

原创 linux的添加网关 查看网关等信息

   原文:https://www.cnblogs.com/lpfuture/p/5857738.html   &amp;&amp;   http://blog.csdn.net/wangyan_hbu/article/details/51013602为了让设备能访问另一个子网,需要在设备里增加路由到子网络,一般来说都是为了能访问别的子网才设置路由的,比如说,你的主机处于192...

2019-01-25 09:59:34 11989

原创 共用体位域的高低位

union{  UINT8 uc;  struct  {    UINT8 priority : 4;    UINT8 reserve : 3;    UINT8 ret : 1;//该任务是否有数据返回              }bits;}un;     un.uc=100;    printf("%X\n",un.bits.priority);    pri...

2018-12-19 15:41:23 2607

原创 串口阻塞和非阻塞

 阻塞方式是文件读写操作的默认方式,但是应用程序员可通过使用O_NONBLOCK 标志来人为          的设置读写操作为非阻塞方式 .( 该标志定义在 &lt; linux/fcntl.h &gt; 中,在打开文件时指定 ) .阻塞:          在设计简单字符驱动程序时,要注意一个重要问题.          当一个设备无法立刻满足用户的读写请求时应当如何处理?...

2018-12-10 13:46:26 12124

原创 转:Linux 各种BCD时间与Unix时间戳格式转换

在Linux C或C++编程中,因为应用场景的不同,经常会遇到各种时间之间的装换,有时需要BCD时间,有时需要Unix时间戳,也有叫绝对时间的。这里介绍几种时间格式转换的应用。Unix时间戳:    Unix时间戳是一个绝对值,表示距离时间(1970-1-1, 00:00:00)的秒数。在C\C++ 语言中,用数据类型time_t 表示时间戳,time_t 本质上是一个long int。获...

2018-12-07 15:29:00 872

原创 多个.C和.H文件的相互调用以及变量的跨文件使用

假如  有一个头文件 1.h 和源文件1.c      还有一个头文件 2.h和源文件2.c 函数的调用假如 有一个函数 在1.h 中声明 void xuexi(void)                在1.c中实现:先包含 #include "1.h"                              void xuexi(void)            ...

2018-12-01 13:52:14 5666 6

原创 一个结构体的双指针和一个结构体的数组指针使用例子(都可以)

1 结构体的数组指针DataFormatStr g_out_data_buf[2];DataFormatStr g_int_data_buf[20];typedef struct{    UINT32 di;    UINT32 len;    UINT8 buf[256];}DataFormatStr;/**      @brief    电表数据格式转集中器数据格式...

2018-11-30 11:11:37 1635

原创 memcpy使用函数注意(如果格式不一样如:memcpy(&A[0],(char *)&B,4))

memcpy使用函数注意              如果格式不一样,则需要强制转换下:             如  char A[4];                   int  B,               如果需要copy,则memcpy(&amp;A[0],(char *)&amp;B,4);...

2018-11-29 15:15:50 1867

原创 linux下守护进程启动一个新应用进程的区别system、open和execl (execl在Ubuntu和linux执行的区别)

用C都可以调用,启动一个应用,在守护进程启动一个进程只能用 execl, systme和popen与execl实际上差别很大。system:启动另外一个应用之后,新应用的进程独立,当前进程也活着。即有两个互不影响的进程。execl:启动另外一个应用之后,新应用的进程即是当前进程。进程数是一个。  需要强调的是:  system/popen都是阻塞的,即运行不结束就不会返回。  ...

2018-11-27 23:28:36 1012

原创 无论是static还是非static的局部变量,每个线程都是私有的,其他线程不会对其进行干扰。

无论是static还是非static的全局变量,如果不加限制随意访问的话易出现同步问题。无论是static还是非static的局部变量,每个线程都是私有的,其他线程不会对其进行干扰。...

2018-11-27 15:36:11 888

原创 头文件.H使用注意事项总结

1   A.htypedef enum{    RD_SUCCESS,//成功    RD_DATAERROR,//数据错误    RD_TIMEOUT,//超时    RD_FAILED,//失败} RD_RESULT;#define NORMAL_TASK 0x00这些enum    #define可以在头文件定义,并且多个C文件都可以调用A.h文件。2 例如b.h...

2018-11-26 14:53:09 471

原创 回调函数的使用总结(非常重要)

使用场景:  如果本人要调用别人的库,而别人的库有时需要数据主动给本人,这时可以需要用到回调函数。别人的库 假设是 a.h 和a.C自己的文件是   b.h和b.c在a.h和a.c里面需要完成的是两个步骤:(1)         a.h里面        定义回调函数指针         typedef INT32(*reporttaskdata_callback)(U...

2018-11-26 14:46:08 743

原创 list(链表)常用成员(顺序容器)----插入push_back,push_front,insert删除pop_back,pop_front,erase,clear遍历begin,end判空empt

list头文件:#include &lt;list&gt;using namespace std; list和vector的不同在于,vector采用的顺序存储,即vector中的元素像数组一样,一个紧挨着一个存放。所以vector可以进行随机存取。(通常情况下使用vector是最优的选择)。但是每当从vector中删除一个元素或向vector中插入一个元素时,代价都比较高。...

2018-11-12 09:46:46 2041

原创 SVN错误:cannot show diff because of inconsistent of newline in the file 的解决方法

2018-10-30 15:45:22 1943

空空如也

空空如也

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

TA关注的人

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