linux学习笔记
文章平均质量分 55
Chasing_Chasing
这个作者很懒,什么都没留下…
展开
-
78 Linux libusb库USB HID应用编程笔记
目前libusb库已经很好的支持USB相关应用的开发,库中提供了丰富的USB接口,用户可以直接调用其提供的API,实现快速开发。原创 2024-08-25 12:10:08 · 524 阅读 · 0 评论 -
71 Linux 应用程序 permission denied问题
应用程序permission denied除了自己的可执行权限不足可导致外,链接库的权限不足也可能导致permission denied。原创 2022-11-21 10:33:48 · 1876 阅读 · 1 评论 -
60 无键值Json数组和有键值json数组实验
1.引言 特殊的key值的json数组今天遇到了,所以研究了会才知道怎么生成和解析这种无键值的json数组。下面我们来看看今天的实验。2.json生成数组实验今天的实验就是生成这样的无key值的json数组,在这里称为数组1。{ "scanPrefix": [ "hello", "hello", "hello", "hello", "hello" ]}...原创 2021-12-03 20:03:59 · 1780 阅读 · 0 评论 -
59 Linux socket的select编程
59.1 引言作为代码搬运工,正常来说写过一次代码之后,就不想重新的重复造轮子,所以特此记录,Linux下的socket的select编程相关配置及例程。59.2 例程 Linux socket例程。int ht_socketOpen(void){ int ni = 0; int ret = 0; int sock_fd = 0; int optval = 0; int sock_nbio = 1; int ...原创 2021-12-02 09:29:10 · 574 阅读 · 0 评论 -
40 Linux SPI通信问题记录
38.1 SPI简要介绍SPI是串行外设接口(Serial Peripheral Interface)的缩写。是 Motorola 公司推出的一 种同步串行接口技术,是一种高速的,全双工,同步的通信总线。SPI是通过移位寄存器进行数据收发的,也就是由主机发起动作,如果主机进行单字节传输,主机发一个数据就会从从机中拿到一个数据,不管你愿不愿意,每发送一个数据,从机都会发一个数据过来。如果是没...原创 2020-04-29 12:32:59 · 2504 阅读 · 1 评论 -
QT 添加背景图像并图像自适应窗口大小
时间:2019-04-04背景:这段时间由于项目比较闲,所以前来开发一个QT工具供以后使用,由于个人有“完美追求”因此偏要给工具加上一个漂亮的图像背景。问题:参考网上许多关于QPalette+QPixmap 或者 用stylesheet实现添加背景图像的,但却未能找到能够图像自适应窗口大小的方式,为此特地拿出来后面找到的QPalette +QImage方式实现添加背景图像,又能自适应大小...原创 2019-04-04 17:59:59 · 17653 阅读 · 6 评论 -
CJSON 创建含多层嵌套结构体及结构体解析
在CJSON的开发中,对于新手来说遇到的问题一般是或许如下几个:第一、如何将C结构体转为一个Json数据格式的结构体?第二、如果遇到Json数据格式中含有结构体数组怎么解析?第三、如果遇到多层结构体嵌套又怎么解析?如下图示,为多层结构体嵌套以及内含一个结构体数组: 以上问题也是我在进...原创 2019-04-23 09:23:31 · 8005 阅读 · 1 评论 -
libevent HTTPserver/ libcurl HTTPClient构建
22.1 前言最近由于项目需要实现http客户端与http服务器,要求是httpServer/httpClient模块独立,不能与用户代码耦合一起。因此为了使得httpserver及httpclient的通用性,在软件框架搭建中httpServer设计了一个回调框架,用户只需要填充相应结构体并传入接口函数,便可实现数据的收发及相应处理,降低了用户代码与HTTP通用模块之间的耦合度。2...原创 2019-05-05 09:35:40 · 802 阅读 · 0 评论 -
curl实现ftp客户端 ftp上送内存数据实例
30.1 前言ftpclient相对于ftpsever在应用实现上比较简单,可以调用现成的很多库快速实现ftp、http等客户端,本篇将实现使用curl 实现ftp客户端的实例编程。本篇博客整合了ftp上送文件以及上送内存数据的方式,便于理解和使用,用户只需填写对应的结构数据,并将该参数传入对应的函数,便可实现ftp上送文件或ftp上送内存数据功能。模块的编写是基于模块独立的设计思想,与用...原创 2019-05-05 10:09:47 · 1255 阅读 · 0 评论 -
Md5加密实现 C语言
35.1 前言MD5加密算法全称为信息摘要算法,主要用途于校验,检验内容是否发生变化。其特点如下:(1)长度固定。不管加密的内容多长,最后得到的结果长度都是一样的16个字节128bit;(2)不可逆性。即使知道密文及加密方式但是却无法反向计算,因为摘要是部分内容,一个MD5反向对应多个原始数据;(3)常用于字符串及文本的加密;35.2 MD5加密实现Md5.h:#...原创 2019-05-21 16:37:04 · 443 阅读 · 0 评论 -
为什么文件大小比fwrite()写入的数据大
len = fwrite(grayArray, 1, nWidth*nHeight, fp_dat);if (len != nWidth*nHeight){printf_s("err!! nNumCount = %dnn", nNumCount);}没有输出“err!...”,说明len与写入数据量是一致,但文件的大小比len大,百思不得其解。后来上网查了一下,在op...转载 2019-05-23 15:20:21 · 1573 阅读 · 0 评论 -
35 Linux 485串口编程及接收数据错乱解决
35.1 前言最近一段时间在搞Linux 跟stm32单片机的485通信,Linux系统所在的板上将发送及接收数据引脚接到485芯片上,从而完成RS232到RS485信号的转换。理论上这种485通信是没什么问题,实际上用PC的串口助手调试Linux485的时候也是没问题!!但是实际跟单片机通信的时候就遇到了一个硬磕了几天的一个bug---Linux485收发切换时延达到26ms左右,导致快...原创 2019-06-30 17:38:49 · 5663 阅读 · 3 评论 -
38 如何根据地址获取函数名
38.1 前言之前有做过一个通过截取内核信号,获取程序出错所在函数位置信息(如段错误),然后进行栈回溯的功能(之前的blog有写),那个虽然成功了,但仍有一些不合人意的地方。就是手动回溯结果显示的只是函数地址,如果要看是哪个函数,那还要用objdump或addrline工具用地址找到是哪个函数,比较麻烦。最近折腾了两天时间,终于搞定了根据地址自动获取函数名称的功能。不管gdb还readel...原创 2019-07-21 19:24:06 · 4827 阅读 · 0 评论 -
ffmpeg 编程程序 未定义的引用错误问题记录
记录:今天在编译ffmpeg时发现报下面的错误,根据提示说没有定义,但事实上,我已经包含了库了,后面发现是因为包含库的顺序不对,感觉是一个大坑啊!!!正确的顺序:STATIC_OLIB+= \$(DIR_LIB_FFMPEG_LIB)/libavformat.a \$(DIR_LIB_FFMPEG_LIB)/libavdevice.a \$(DIR_LIB_FFMPEG_LI...原创 2019-08-09 16:17:06 · 3753 阅读 · 12 评论 -
Linux iptables IP映射 跨网段访问
Linux iptables IP映射 跨网段访问19.1 前言开发中,遇到一个跨多个网段访问设备内部局域网的问题。刚开始对这个跨网段的问题无从下手,但后面想了又想,难道不能让一个网口直接桥接到另外一个网口吗?顺着这个想法,于是就想到了IP映射,后面又深入到Linux中的netfilter机制。我们可以使用Linux中netfilter的机...原创 2019-03-11 15:17:09 · 6579 阅读 · 0 评论 -
ARM Linux 手写实现栈回溯
在开发中遇到这样一个问题,程序要跑很久才会出现一次崩溃,由于系统有硬件看门狗,因此程序在崩溃时coredump文件都没生成就已经重启了,这对定位程序bug代价严重。gdb可以对程序错误有很好的定位,因此为了模仿gdb这种从出错函数回溯的功能,于是想实现能否程序中也能实现这个。 一开始,想看gdb源码,但是真的太多太复杂了(不是一般人看的,神人看的)。后来就探究Lin...原创 2019-02-13 09:59:26 · 2335 阅读 · 6 评论 -
stm32收发 wiegand 韦根协议开发详解
在刚开始接触到韦根接口时,知道这是一种门禁相关的传输协议。其中有两种比较常用的韦根数据格式,韦根26和韦根34,其中韦根26是开放的,韦根34开不开放我不知道(看样子不开放),但是在网上还是能看到韦根34的代码协议,下面介绍一下韦根26以及韦根34的相关内容。Wiegand 26格式:各数据位的含义:第 1 位: 为输出数据2—13位的偶校验位第 2 - 9 位:...原创 2019-02-15 13:54:23 · 11551 阅读 · 8 评论 -
Qt5.6.0 移植到ARM(tq2440)步骤及问题记录
时间:2017年11月29日平台:unbuntu64位环境 目标环境:tq2440编译器:arm-linux-4.4.3移植QT到开发板并运行起来需要以下几个步骤: 1、重新编译内核 2、制作文件系统 3、移植tslib 4、移植qt库对于以上四个步骤在这篇博客有相应的关键步骤以及资源:http://blog.csd原创 2017-11-29 23:25:39 · 951 阅读 · 0 评论 -
关于QT中 **.cpp:1:1: error: stray '\377' in program 错误解决
时间:2017年12月4号环境:ubuntu64 +QT creator问题描述:今天在进行编码的时候,不小心将文件编码格式选为:UTF-16格式,搞得一编译全部是下面的错误:stray '\377'in programstray '\376'in program.........null characters(s) ignorednull characters原创 2017-12-04 10:36:02 · 6152 阅读 · 1 评论 -
QT+ffmpeg 简单视频播放代码及问题记录
开发环境:ubuntu16.04qt版本:5.6.0ffmpeg版本:ffmpeg-3.4第一步:关于开发环境的搭建对于ffmpeg开发环境的搭建,我就不再这里叙述了,参考下面博客,期间遇到问题一步步解决即可。http://blog.csdn.net/haoxu135790/article/details/53171498第二步:打开qt-creator原创 2017-12-17 12:05:44 · 6609 阅读 · 5 评论 -
Linux 下C编程实现文件夹下文件大小和二级文件夹大小统计
时间:2017年12月29日环境Linux+编译器gcc问题记录1:最近在搞统计目录下文件和文件大小的实现,一开始上博客以及上网找相应的demo,找到一些,但大都只是统计当前文件夹下文件的总大小,即没有统计当前文件以及二级文件夹的能力,所以自己弄了一个能够实现当前目录下二级目录的大小统计。问题记录2:关于stat函数问题首先还是贴一下stat函数的原型吧,如下。表头原创 2017-12-29 10:06:49 · 1598 阅读 · 0 评论 -
ffmpeg 视频解码 vformat_find_stream_info() 后获取视频分辨率错误问题
2018年1月9日,问题记录:昨天遇到一个问题:就是想获取视频分辨率大小,但遇到的问题是网上流行的代码如下所示,不能显示视频文件正确的宽和高,而用av_dump_format(pFormatCtx, 0,ucfileNmae, 0);函数却能获取其正确分辨率,故特看了ffmpeg源码,发现在源码中能正确输入的成员不是width而是另外一个coded_width,所以将下面代码换掉就行了。原创 2018-01-09 10:39:09 · 2355 阅读 · 0 评论 -
关于ffmpeg解码内存增加解决方案-替换解码代码
Linux环境:Ubuntu16.4ffmpeg库版本:ffmpeg-3.4.1问题:最近在弄ffmpeg视频解码,由于项目的需要,需要一直重复播放链表中挂在的图片,一直循环,但是遇到一个问题是,每次调用ffmpeg图像解码函数,使用top命令查看程序所占内存大小,发现每调用一次内存就增加一点,最后占掉了系统所有的内存,被系统防护机制杀掉了。尝试解决:1、遇到上述问题之后,我开始怀疑是不是我忘记释...转载 2018-01-18 10:29:41 · 7289 阅读 · 1 评论 -
uboot修改启动logo-sunxi
时间:2018-02-10题记:关于uboot启动logo修改背景:由于项目一部分的需要,需要在系统前期开机阶段就要显示logo,我使用的是全志T3开发板,uboot也是其相应的SDK,于是开始了这修改logo的尝试。说明:最为初始的SDK的uboot是有启动logo的,也就是全志V40这个logo,但是这个logo的启动方式是:将logo放在一个uboot分区中,然后再启动的时候使用fat文件系...原创 2018-02-11 14:21:00 · 3835 阅读 · 0 评论 -
Linux下 修改访问uboot环境变量分区内容
关于Linux下 修改访问uboot环境变量分区内容补充!时间:2018年03-21背景:项目需要在Linux下也能修改flash分区中的env环境变量一、引言问:uboot下可以通过命令访问和修改环境变量,在Linux系统下该怎样访问这些数据?答:用uboot提供的fw_printenv工具二、该怎么做?1、下载新版本的uboot,在uboot/tools/下可看见env/ 目录,里面存放的就是...原创 2018-03-21 17:27:03 · 2574 阅读 · 2 评论 -
Linux ext4文件系统inode信息修改
引文(引用博客:https://blog.csdn.net/stringnewname/article/details/73740155):Linux访问文件过程1.当我们输入cat testfile时,cat命令接收到testfile参数,进而根据当前工作目录计算出这个文件的绝对路径为/home/niugen/testfile2.解析这个路径,首先是/即根目录,根目录这个文件对应的ino...原创 2018-08-31 19:06:28 · 9551 阅读 · 0 评论 -
问题分析及记录../sysdeps/x86_64/multiarch/../memcpy.S: 没有那个文件或目录.
在Linux的项目开发中,今天运行程序时出现:./sysdeps/x86_64/multiarch/../memcpy.S:没有文件或目录错误。该程序是进行人脸检测的,其有用到gtk、sdl库,因为我虚拟机已经有sdl2版本的库,所以很快就编译过了,但是运行却出错了,段错误。折腾了一下,先是百度搜索,看到说一般不是因为缺少该文件,而是因为memcpy操作时可能数组溢出、或者空指针问题,然后我用...原创 2018-08-30 10:13:42 · 11131 阅读 · 0 评论 -
Linux ls: xxx .: Input/output error 错误问题 及 fsck源码下载
在最近项目开发中,由于经常需要访问flash中的某个分区的问题,在长时间的open以及close后,出现了对应操作目录下ls、ll等系统命令不能执行且错误问题,一开始以为是该分区flash硬件损坏了,导致文件节点丢失、文件错误而不能访问。对于: xxx .: Input/output error 可能是硬件损坏,也可能是文件系统损坏,我们可以通过一下命令进行查看# dmes...原创 2018-08-30 11:05:42 · 41232 阅读 · 2 评论 -
Makefile 编写
由于项目中经常需要用到MakeFile的编写,但是有经常容易忘掉其中某些字符含义,因此特写出此Makefile博客,用来直接的参考而非对Makefile的详细讲解。1、一个普通的Makefile脚本示例# 这是一个简单的Makefile,没有使用变量及其它东西# 生成文件名为main的可执行文件# -lm 是连接数学库main:cjsonmain.o cJSON..........原创 2018-09-20 18:55:12 · 466 阅读 · 0 评论 -
Linux 时间戳localtime函数多线程编程的一些坑
在Linux多线程编程中,我们经常需要获取系统时间,一般是使用以下方式获取系统的时间信息:int example(){ time_t unTimeStamp = 0; struct tm *pstTm; unTimeStamp = time(NULL); pstTm = localtime(&unTimeStamp); if(pstTm != NULL)...原创 2018-12-03 18:58:53 · 2365 阅读 · 0 评论 -
QT 实现在ui控件QLabel中实现滚动字幕
题记:前一段时间作为小白的我,搞了一下QT,在如何实现在ui一个子控件中进行字幕滚动/图片显示卡住了,经过资料及百度查询,终于做出来了。由于之前没人有详细的教程,所以我记录了一下,把这个分享这里,希望对大家帮助。QPainter 在ui子控件中实现滚动文字显示在使用QT中的QPainter实现滚动图片时,发现其职能在当前类中实现而不能对其指定对象。因此,本文介绍如何实现在UI子控件中实...原创 2017-08-20 19:11:26 · 5476 阅读 · 0 评论