![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
o0o0BEN0o
底层驱动玩家
展开
-
iproute2 ipv6地址设置源码分析
iproute 作为网络接口的设置工具具备我们大部分需要的功能。以设置ipv6 地址为例来分析一下它的源码它的实质其实是与内核建立一个socket通信,通过建立的fd进行网络接口的设置和信息读取。简单来说,就四步:建立与内核的连接-> 发送数据到内核 -> 从内核读取数据 -> 关闭连接建立与内核的连接int rtnl_open(struct rtnl_handle *rth, unsigned int subscriptions){ return rtnl_open原创 2021-11-29 14:43:50 · 1844 阅读 · 0 评论 -
记录遇到的内存泄漏
记录一下内存泄漏线程使用pthread_create()创建线程时,设置属性为NULL,线程退出时该线程占用的资源不会释放。比如遇到过反复创建某个线程后返回,会导致其占用的虚拟内存不断增加,最终导致系统资源不可用。设置线程属性 pthread_t recv_pthread; pthread_attr_t attr; pthread_attr_init(&attr); /*free pthread sources*/ pthread_attr_setdetachstate(&原创 2021-06-02 15:16:46 · 140 阅读 · 0 评论 -
i2c 16位寄存器的读写
/* Ensure address is not busy */int set_slave_addr(int file, int address, int force){ /* With force, let the user read from/write to the registers even when a driver is also running */ if (ioctl(file, force ? I2C_SLAVE_FORCE : I2C_SLAVE, address)..原创 2021-04-30 15:30:04 · 3971 阅读 · 1 评论 -
主线程传实参给子线程的时效性问题
主线程传实参给子线程后,主线程退出,这时候如果参数实在主线程启动时才定义的,那么主线程退出,传给子线程的参数也失效了。解决方法参数定义为全局变量,传到子线程时,再开一个变量接收保存这个参数static int a;void *pthread(int *a){ int b; b=*(*a);}还一种方法就是在主线程开辟一片内存空间,存储变量,在子线程用完了在释放struct test{ int c; int d;};vo.原创 2021-03-19 17:29:10 · 197 阅读 · 0 评论 -
C语言malloc和free中的bug
malloc和free都是搭配着使用,防止内存泄漏的,而且释放内存空间,能够让系统有更大空间处理更多事件但是最近在使用时遇到这么个问题 unsigned char *head_info_buf; head_info_buf = (unsigned char*)malloc( sizeof(unsigned char) * (head_size) ); fseek(fp,head_pos,SEEK_SET); fread(head_info_buf,head_size,1,fp); head原创 2020-06-04 11:10:38 · 428 阅读 · 0 评论 -
linux下 gpio 模拟 串口uart 驱动
linux下 利用gpio口模拟 串口uart接收数据设计思路串口数据类型在没有校验位的情况下,串口第一位数据(起始位)是一个低电平,接着是8位的数据位,然后接着一个结束位(一个高电平)。所以我们设计是:1.利用起始位作为一个触发中断的条件,就是将接收数据的gpio口作为中断口,下降沿触发;2.定时器开启,这里需要开启两个定时器,第一个计时器是时钟周期的一半(1/(波特率*2))第...原创 2020-05-06 09:53:23 · 2839 阅读 · 7 评论 -
解决:内核没办法正常挂载文件系统,错误log:devtmpfs: error mounting -2
s32v234sbc的升级后第一次总是出现文件系统没办法挂载的情况错误log:devtmpfs: error mounting -2跟踪代码,他在内核 drivers/base/devtmpfs.c中/* * If configured, or requested by the commandline, devtmpfs will be * auto-mounted after ...原创 2020-02-27 10:53:49 · 6343 阅读 · 0 评论 -
利用C语言寻找类型相同的文件
利用C语言寻找后缀相同的文件#include <string.h>void main(){ char str1 = "aa.exe"; char str2 = ".exe"; int a; a=strncmp(str1+strlen(str1)-strlen(str2),str2,strlen(str2));}若str1==str2,则返...原创 2019-10-24 16:02:40 · 403 阅读 · 0 评论