- 博客(16)
- 资源 (1)
- 收藏
- 关注
原创 realloc函数
需要注意的是,如果newSize小于原始内存块的大小,那么realloc函数可能无法释放额外的内存。在这种情况下,realloc函数会返回一个指向新的内存块的指针,该内存块包含了原始内存块的所有内容。在这种情况下,新的内存块会包含原始内存块的内容,并且新的内存块的大小会扩展到newSize。如果原始内存块的内容超出了新的内存块的大小,那么超出部分的内容会被丢弃。这个指针应该被用来访问新的内存块。其中,ptr是一个指向已经分配的内存块的指针,newSize是新的内存块的大小(以字节为单位)。
2023-08-22 11:43:33
808
原创 SO_KEEPALIVE TCP_KEEPIDLE TCP_KEEPINTVL TCP_KEEPCNT 用法说明
保活机制是一种用于检测连接是否仍然有效的机制。当启用保活机制后,操作系统会定期发送一些特殊的探测数据包到对端,如果一段时间内没有收到对端的响应,就会认为连接已经断开。SO_KEEPALIVE是一个套接字选项,用于启用或禁用套接字的保活机制。不同系统上的各参数的时间单位不尽相同。Linux上单位为秒,系统默认参数。
2023-08-16 20:16:48
836
原创 PEM_read_PUBKEY与PEM_read_RSA_PUBKEY解析
"-----BEGIN PUBLIC KEY-----“格式的公钥使用的是X.509 SubjectPublicKeyInfo格式,而”-----BEGIN RSA PUBLIC KEY-----"格式的公钥使用的是PKCS#1 RSAPublicKey格式。PEM_read_RSA_PUBKEY函数读取的是一个包含RSA公钥的PEM文件,这个文件通常以"-----BEGIN RSA PUBLIC KEY-----"开始。这个函数返回一个EVP_PKEY结构,这是一个可以包含任何类型公钥的通用结构。
2023-08-16 10:10:22
2047
原创 busybox中ftpd使用用户名和密码登陆的办法
因为busybox中本身带有ftp的功能,所以就没有去搞其他的工具,但是在后面使用的过程中,发现通过自带的ftp访问我们的设备的时候是不用密码的,这样就存在风险,故在网上寻找解决方法,可以参考下面这个方法。我的busybox版本是busybox-1.22.1。https://blog.youkuaiyun.com/lidongliang07/article/details/45376013?spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_b
2021-11-12 14:15:09
1862
原创 linux中setup_irq和remove_irq
参考文章:https://www.cnblogs.com/hoys/archive/2012/05/30/2525996.htmlSetup_irqSetup_irq通常是直接注册irqaction,并没针对相应中断线进行错误检测,如该irq 线是否已经被占用等。因此setup_irq通常只用在特定的中断线上,如System timer。除系统时钟驱动外,大部份驱动还是通过request_irq注册中断。/** * setup_irq - setup an interrupt * @irq:
2021-09-17 17:48:07
346
原创 c语言中inline用法
今天在复制粘贴的时候发现编译出错,查看报错信息是因为inline引起的错误。先说一下我的用法,在文件A中定义一个函数inline void fun1(void),将此函数定义为了inline函数,在文件B中需要使用刚刚定义的fun1函数,所以直接使用extern inline void fun1(void,然后编译就报错了。error: inlining failed in call to always_inline 'pulse_timer_fun': function body not availab
2021-09-17 17:38:12
557
原创 HYG12864字符显示
一、硬件HYG12864A2G-YF62L-VD是一个128*64的lcd模块。记录几个比较重要的寄存器设置。1.有lcd模块信息可知,有128列,64行,每8行为一页。2.显示时要设置页地址和列地址,两个寄存器的说明如图2. Page address set 主要是用来设置页地址/*设置页地址为0*/PageAddr = 0xB0;wr_cmd(PageAddr); Column address set upper bit用来设置列地址的高四位Column address set lo
2021-08-31 22:25:35
1101
原创 Linux chattr 命令
一般,“chattr”命令用于更改Linux文件上属性。以下是它的语法:chattr [ -RVf ] [ -v version ] [ mode ] files…Q1.使一个文件成为只读。用法:chattr +i test.txtQ2. 取消只读属性使用-i选项替换+i用法:chattr -i test.txtQ3. 对一个目录中的所有文件添加限制用法:chattr -R +i ./test-dir/Q4. 查看 chattr 命令赋予文件上的属性lsattr [FILEN
2021-08-30 18:14:38
373
原创 UBIFS分区的挂载卸载命令
1.ubiattach将指定的mtd分区关联到ubi上Usage: ubiattach -m MTD_NUM [-d UBI_NUM] UBI_CTRL_DEVAttach MTD device to UBI -m MTD_NUM MTD device number to attach -d UBI_NUM UBI device number to assign例:ubiattach -d 3 -m 3 /dev/ubi_ctrl2.ubimkvol 创建一个UBI卷设备Usage
2021-08-28 19:51:17
2649
原创 宏定义一不小心就出错了!!!
1.今天敲代码过程中,使用了一个宏定义如下,看着好像没有什么特别,#define DATA_INTERVAL 15*60 //数据间隔秒数但是在继续敲的过程中,可能中午没吃饱就写下了下面的代码,原意是想将时间规整一下,但是经过以下代码之后时间就错了,刚开始还以为秒数转换为标准格式时间函数出错,将代码看了一遍也没看出来,找了一大圈。int startsec =0;startsec = startsec /GET_INTERVAL*GET_INTERVAL;最后才发现,不使用这
2021-08-17 21:34:48
1421
原创 SIG_DFL和SIG_IGN
1.SIG_DF默认信号处理 ,即恢复信号本来处理的过程用法:使用信号捕捉函数,当捕捉到信号时,进入自身写好的回调函数signal(SIGSEGV, HandleFunc); // 非法内存访问在HandleFunc中可以打印内存地址等相关操作,然后将信号恢复成默认信号处理方式,让信号可以继续发挥他该有的作用。signal(SIGSEGV, SIG_DFL);//SIG_DF默认信号处理 raise(SIGSEGV);//raise函数就是向当前进程发信号SIG_IGN,将信号忽略。
2021-08-10 16:07:31
2632
原创 Linux下syscall(SYS_gettid)
1.在linux下每一个进程都一个进程id,类型pid_t,可以由 getpid()获取;2.POSIX线程也有线程id,类型pthread_t,可以由 pthread_self()获取,线程id由线程库维护。3.但是各个进程独立,所以会有不同进程中线程号相同节的情况。那么这样就会存在一个问题,我的进程p1中的线程pt1要与进程p2中的线程pt2通信怎么办,进程id不可以,线程id又可能重复,所以这里会有一个真实的线程id唯一标识,tid。glibc没有实现gettid的函数,所以我们可以通过linux
2021-08-10 16:00:20
443
原创 boa的web服务器搭建
1.下载boa安装包http://www.qmail.org/2.下载好的安装包放入linux环境解压缩,进入src目录下;下载的版本boa-0.94.13.tar.gz3.运行./configure生成makefile4.将CC和CPP变量进行如下修改CC = arm-linux-gnueabihf-gcc CPP = arm-linux-gnueabihf-gcc -E5.运行makefile后报错报错1:yacc -d boa_grammar.ymake: yacc:
2021-08-01 23:57:27
979
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人