![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux系统
文章平均质量分 57
yuanbinquan
这个作者很懒,什么都没留下…
展开
-
Linux 文件系统只读
Linux 文件系统只读异常处理方式原创 2023-01-29 16:09:24 · 2617 阅读 · 0 评论 -
Linux netlink机制介绍与实例
Linux netlink机制介绍与实例原创 2023-01-02 17:17:30 · 794 阅读 · 0 评论 -
Linux /proc 文件系统-机型定义
Linux /proc 文件系统-机型定义原创 2022-11-29 14:15:46 · 277 阅读 · 0 评论 -
linux 线程非法退出导致内存泄露
linux 线程非法退出导致内存泄露转载 2022-09-16 09:16:19 · 356 阅读 · 0 评论 -
fsck fat32修复工具
fsck.fat dosfstools fat32修复原创 2022-09-06 18:31:18 · 1358 阅读 · 0 评论 -
检测设备是否插入有线网
检测设备是否插入有线网原创 2022-08-24 17:16:16 · 222 阅读 · 0 评论 -
动态调频调压小记
动态调频调压原创 2022-08-22 11:47:51 · 375 阅读 · 0 评论 -
mp4文件修复
标准mp4文件修复原创 2022-08-02 19:53:12 · 2380 阅读 · 4 评论 -
linux内存泄露分析
linux内存泄露分析,多线程编程单线程内存占用原创 2022-04-25 21:30:59 · 5648 阅读 · 0 评论 -
linux程序数据区内存窥视
1、linux进程概念2、进程示例#include "stdio.h"static int gTest = 0;static int* gptr = &gTest;int main(void){ gTest++; printf("全局变量值gTest = %d\n", gTest); printf("全局变量地址&gTest = %p\n",&gTest); printf("指针的值gptr=%p\n",原创 2021-05-20 15:44:24 · 219 阅读 · 0 评论 -
DNS域名解IP抓包小计
1、wiresharek抓包window电脑启用wiresharek软件抓包,不说了2、cmd->ping baidu.com电脑上打开控制台,输入:ping baidu.com3、抓包数据分析3.1、域名解ip查询3.2、域名解ip查询应答原创 2021-05-12 16:21:01 · 367 阅读 · 0 评论 -
软件数据加密技术概念分类
文字记录,个人现阶段对加密概念的理解和工作使用心得。不具有加密技术的全面性归档和总结。如有出入请指教1、解密数据分类,及差异加密类型 使用算法 基本特性 应用枚举 对称加密 DES(数据加密标准,56位密钥) AES(高级加密标准,128位密钥) 3DES、Blowfish、Twofish、CAST5、IDEA、RC6 加密、解密使用同一个密钥 通常用来加密数据,加解密速度快 密钥过多,管理密钥困难 密钥交换困难 ...原创 2021-05-07 17:22:18 · 375 阅读 · 0 评论 -
应用 Valgrind 发现 Linux 程序的内存问题
Valgrind 概述体系结构Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合。Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件 (plug-in),利用内核提供的服务完成各种特定的内存调试任务。Valgrind的体系结构如下图所示:图 1 Valgrind 体系结构Valgrind包括如下一些工具:Memcheck。这是v转载 2020-10-27 10:43:46 · 177 阅读 · 0 评论 -
AddressSanitizer使用介绍
1、关于AddressSanitizer1.1 引言也许很多人都听说过类似这样的一个故事:某公司的服务器每隔3个月就会毫无预兆的崩溃一次,怎么也查不出原因,为了避免崩溃可能引发的问题,只得每2个月手动重启一次服务器。在这类有些灵异的事件背后,以内存泄露为代表的一系列内存错误往往就是那个幕后黑手。在计算机科学中,内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费转载 2020-06-15 17:36:13 · 12651 阅读 · 0 评论 -
wav数据格式详解
1. 音频简介经常见到这样的描述: 44100HZ 16bit stereo 或者 22050HZ 8bit mono 等等.44100HZ 16bit stereo: 每秒钟有 44100 次采样, 采样数据用 16 位(2字节)记录, 双声道(立体声);22050HZ 8bitmono: 每秒钟有 22050 次采样, 采样数据用 8 位(1字节)记录, 单声道;...原创 2020-03-11 21:05:51 · 7215 阅读 · 0 评论 -
liunx 系统内存详解
想必在linux上写过程序的同学都有分析进程占用多少内存的经历,或者被问到这样的问题——你的程序在运行时占用了多少内存(物理内存)?通常我们可以通过top命令查看进程占用了多少内存。这里我们可以看到VIRT、RES和SHR三个重要的指标,他们分别代表什么意思呢?这是本文需要跟大家一起探讨的问题。当然如果更加深入一点,你可能会问进程所占用的那些物理内存都用在了哪些地方?这时候top命令可能不能给到你...转载 2020-01-10 20:39:26 · 170 阅读 · 0 评论 -
LD_PRELOAD用法
LD_PRELOAD,是个环境变量,用于动态库的加载,动态库加载的优先级最高,一般情况下,其加载顺序为LD_PRELOAD>LD_LIBRARY_PATH>/etc/ld.so.cache>/lib>/usr/lib。程序中我们经常要调用一些外部库的函数,以open()和execve()为例,如果我们有个自定义这两函数,把它编译成动态库后,通过LD_PRELOAD加载,当...转载 2019-11-29 17:40:20 · 1139 阅读 · 0 评论 -
arm-linux-gdb 环境搭建及调试core文件
系统环境:host:ubuntu12.04gcc:gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) target:hisi3520d开发板arm-linux-gcc:SDK中自带的arm-hisiv100nptl-linux-gccgdb版本:gdb-7.9GDB环境搭建解压gdb-7.9.tar.gz原创 2015-06-18 15:34:12 · 8868 阅读 · 1 评论 -
嵌入式设备进行http socket开发流程
最近接触了一个http开发的项目,在这里记录一下主要流程。 下位机:arm linux 上位机:pc web服务器 这里在与web服务器通信时,没有使用第三方开源库工具,而是直接使用socket通信模拟http协议通信,大致思路如下: 1 、对域名解析,将www.xxxx.com之类的网址解析为ip地址,端口没有说明的话,默认80 2、使用so原创 2017-05-02 10:09:30 · 6338 阅读 · 0 评论 -
rtp、rtsp客户端开发流程
环境:VLC做服务器,url:rtsp://192.168.100.77:8554/1 rtsp链路采用tcp链接 rtp采用udp关于rtp、rtsp、rtcp的知识,这里不做详细解释,网上有大把的资料,用户可以自己问度娘。这里直接切入正题。PS:这里还需要唠叨一点,rtsp为字符协议,字符协议中含大量不可见字符原创 2017-02-24 11:42:42 · 6965 阅读 · 0 评论 -
linux vsftpd 环境搭建
# Example config file /etc/vsftpd.conf# version 3.0.3#####################vsftpd安装方法########################需求:vsftpd 服务器创建用户,该用户具有上传、下载文件权限#step 1:安装vsftpd#apt-get install vsftpd#step 2:添原创 2017-02-09 10:48:29 · 3625 阅读 · 0 评论 -
自行实现 Onvif 对接开发模式
对于Onvif协议,在安防视频行业的地方,谁都知道。但是网上就有onvif协议对接的方案都是使用开源的第三方库进行对接,讲解。那么问题来了,我们能不能用代码自己实现呢?答案是肯定的。而要用我们自己的代码实现onvif协议对接,其中牵扯到诸多的协议和概念,这里我大致整理一下,对自行实现Onvif协议对接者提供一个学习思路。1、工具很重要学习onvif之前,需要两个最基本工具:1、ONVI原创 2017-06-15 11:39:18 · 21656 阅读 · 4 评论 -
远程调试
在实际的运用中,我们总希望我们的设备有远程调试的功能,这里给出一个远程调试的框架,将调试串口重定向到sock,供参考: if(sock { /* 链接tcp server */ sock = Debug_Com2Net_ConnPeer_FUN();原创 2016-11-15 16:53:31 · 439 阅读 · 0 评论 -
日志记录重定向到文件
//打开文件 fp = fopen("/mnt/sdcard/com.log", "at+"); if(fp == NULL) { perror("fopen:"); printf("fopen(/mnt/sd原创 2017-08-04 10:04:55 · 2714 阅读 · 0 评论 -
linux 多线程消息广播
最近在工作中遇到了问题一个纠结问题:一个底层通用的模块,在应用层有许多线程使用。该模块大多数情况下都是正常的,模块出问题之后或基于其他考虑需要重启底层模块,底层重启了之后理论上是应用层需要释放当前资源,重新开始应用层业务。 为了实现该目标,当前以使用方式是:底层模块重启前调用每一个应用程接口,通知他们释放当前资源。但感觉这个设计有些缺陷:完全破坏了底层模块的封装完整性。 然后首原创 2017-07-29 12:53:16 · 1021 阅读 · 0 评论 -
参考ethtool写了个Linux设置、获取网卡模式的接口
差不多一个月没写文章了,这期间,主要是搞一些比较复杂的问题,一直被搞,没有搞其它的东西,也就没写出什么东西来。在找问题过程中,上网了解到ethtool这个工具十分强大,以为这个代码很复杂,而恰好领导要求我提供设置网卡信息的接口,于是下了代码,研究了一下,参考了一下,整理了一下。当然文中写的是第一个版本,要是这样的接口提供出去,其它部门的人肯定会有意见的。Linux内核很早就已经加入etht转载 2017-11-11 17:37:14 · 2067 阅读 · 0 评论 -
linux c语言 统计CPU专用率
最近在调试中发现应用程序的CPU占用率高,于是想看是那个线程专用了cpu。 # top 查看cpu专用率,这个时候打印的是进程级别cpu专用率。再按H,就有打印线程级别的cpu专用信息了...原创 2018-09-18 12:05:51 · 1151 阅读 · 0 评论 -
Linxu文件系统句柄泄露排查
在Linux系统中能够通过ulimit–n查看每一个进程限制的最大句柄数,通过ulimit –HSn 10240改动进程的最大句柄数。当句柄数目达到限制后,就回出现”too many files open”。查看进程占用的句柄数有几种办法:1) 通过cat/proc/pid/fd能够查看进程pid号打开的线程;2) 通过lsof命令如果发现那个文件句柄打开特别多,就可...原创 2019-06-05 11:16:22 · 2255 阅读 · 0 评论 -
liunx 磁盘备份
因工作需要,大家都在一个linux服务器上工作,这时候服务器的重要性就凸显出来了,为了以防备万一份服务器是必须的。step1: 系统盘和备份盘fdisk -l ,首先需要两块硬盘:系统盘、备份盘。系统盘是下图/dev/sda,备份盘是下图/dev/sdbstep2:dd指令备份磁盘dd if=/dev/sda of=/dev/sdb bs=1024k&(1).先改f...原创 2019-06-25 16:16:08 · 255 阅读 · 0 评论 -
ARM linux SPI备份flash数据
uboot中如果支持spi/qspi flash, 那么可以使用sf的erase, read, write命令操作spi flashsf read用来读取flash数据到内存sf write写内存数据到flashsf erase 擦除指定位置,指定长度的flash内容, 擦除后内容全1以备份uboot文件举例:1 、设置环境变量setenv serverip 192.168.23...原创 2019-08-19 11:52:46 · 2752 阅读 · 0 评论 -
海思hisi I2C SPI读写寄存器
I2C 读写命令示例此操作示例通过 I2C 读写命令实现对 I2C 外围设备的读写操作。a. 在控制台使用 i2c_read 命令对 I2C 外围设备进行读操作:~ $ i2c_read <i2c_num> <device_addr> <reg_addr> <end_reg_addr> <reg_width> <data_w...转载 2019-08-20 15:39:25 · 2917 阅读 · 1 评论 -
移植mp4v2开源库,h264+g711a/g711u编码mp4
1、mp4v2移植 step1、下载:https://launchpad.net/ubuntu/+source/mp4v2 step2、编译 简单配置参数: ./configure --host=arm-linux CXX=arm-hisiv100nptl-linux-g++ CC=arm-hisiv10原创 2017-05-08 11:59:39 · 4564 阅读 · 0 评论 -
rtsp、rtp tcp和udp链接方式区别
1、工作方式的差异通常来说,RTSP提供UDP方式发送RTP流。当然,发送流媒体时,UDP往往是更好的选择。但是,在互联网上使用UDP方式发送流是不可能的。 下面是使用UDP时的一些问题:1. UDP协议上的RTSP/RTP需要打开许多UDP端口(每一路流媒体都需要2个UDP端口,一个用于接收数据,一个用于接收控制信息);2.当因特网上的路由器没有打开这些端口的时候,上述第原创 2017-03-06 13:23:15 · 16074 阅读 · 1 评论 -
RamDisk ramfs tmpfs 详解
一 什么是RamDiskRam:内存,Disk:磁盘,在Linux中可以将一部分内存当作分区来使用,称之为RamDisk。对于一些经常被访问、并且不会被更改的文件,可以将它们通过RamDisk放在内存中,能够明显地提高系统性能。RamDisk工作于虚拟文件系统(VFS)层,不能格式化,但可以创建多个RamDisk。虽然现在硬盘价钱越来越便宜,但对于一些我们想让其访问速度很高的情况下,RamDi转载 2016-06-11 18:47:50 · 2621 阅读 · 0 评论 -
linux 多网卡路由问题
多路由解决方案一:使用下面的 route 命令可以查看 Linux 内核路由表。# routeDestination Gateway Genmask Flags Metric Ref Use Iface192.168.0.0 * 255.255.255.0 U 0 0 0 eth原创 2016-05-21 09:29:14 · 16354 阅读 · 1 评论 -
gcc arm-linux-gcc编译优化
Gcc 优化调研Gcc 编译优化简介gcc 提供了为了满足用户不同程度的的优化需要,提供了近百种优化选项,用来对{编译时间,目标文件长度,执行效率}这个三维模型进行不同的取舍和平衡。优化的方法不一而足,总体上将有以下几类:1)精简操作指令;2)尽量满足cpu的流水操作;3)通过对程序行为地猜测,重新调整代码的执行顺序;4)充分使用寄存器;5)对简单的调用进行展开等等。想全部了解这些编译选项转载 2016-05-21 09:15:33 · 4497 阅读 · 0 评论 -
GCC警告选项例解
GCC警告选项例解程序员是追求完美的一族,即使是一般的程序员大多也都不想看到自己的程序中有甚至那么一点点的瑕疵。遇到任意一条编译器警告都坚决不放过。有人会说:我们可以使用比编译器更加严格的静态代码检查工具,如splint。这个建议也很不错。不过lint工具使用起来较繁琐,有时候还需要记住一些特定符号并插入到你自己的代码中才行,门槛较高,这也让很多人止步于此。那么我们就从此放弃么?不,如今的编译转载 2016-05-26 16:10:29 · 3488 阅读 · 0 评论 -
linux 库的依赖和链接的顺序
linux库的依赖和链接先后顺序原创 2016-02-25 19:11:36 · 3875 阅读 · 0 评论 -
ftp断点续传
一、这里假设大家对ftp协议有一定的了解,仅仅讲述ftp断点续传原理,如果对ftp协议不懂,可以在网上查阅,有大把资料二,最重要的一点,断点续传需要服务器的支持,这个是必要条件。 传统的FTP SERVER是不支持断点续传的,因为它不支持REST指令,传统的FTP指令(我是指服务器端指令)并不包括REST指令。 支持断点的FTP SERVER:Se原创 2015-12-25 11:08:28 · 7493 阅读 · 0 评论 -
Linux 系统时间和硬件时间
今天在调试时发现工作产品板上的时间不对,使用date设置了时间,重启后发现时间还是不对,问了一下度娘,她这么说: Linux时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟。系统时钟是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的时钟,这个硬件时钟可以在BIOS中进行设置。 linux 的转载 2015-06-15 14:23:55 · 3003 阅读 · 1 评论