![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 64
dragon_cdut
和大家一起学习交流是快乐
展开
-
十大经典排序算法
原文地址:一文搞掂十大经典排序算法_不才伟才的博客-CSDN博客一文搞掂十大经典排序算法今天整理一下十大经典排序算法。1、冒泡排序——越小的元素会经由交换慢慢“浮”到数列的顶端算法演示算法步骤比较相邻的元素。如果第一个比第二个大,就交换它们两个;对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;针对所有的元素重复以上的步骤,除了最后一个;重复步骤1~3,直到排序完成。算法实现def bubbleSort(arr): for..转载 2022-04-14 13:47:06 · 136 阅读 · 0 评论 -
linux 文件IO - O_DIRECT和O_SYNC详解
原文地址:https://www.cnblogs.com/suzhou/p/5381738.html进入正题。O_DIRECT和O_SYNC是系统调用open的flag参数。通过指定open的flag参数,以特定的文件描述符打开某一文件。这两个flag会对写盘的性能有很大的影响,因此对这两个flag做一些详细的了解。先看一个open函数的使用例子. 1 2 3 4 5 6 /* Open new or existin转载 2022-04-07 16:44:22 · 6479 阅读 · 0 评论 -
linux 7z指令
安装7z指令包:Ubuntu安装:apt-get install p7zip-fullcentos安装:yuminstall p7zip -y压缩:7z/7za a -t7z -r *.7z /home/user/obj-folder/*a:表示压缩文件或文件夹-t:指定压缩格式,默认支持7z,也能支持.tar.bz2,-t后没有空格,直接接格式-r:表示递归解压缩子文件夹*.7z压缩后生成的压缩文件/home/user/obj-folder/*:要被...原创 2022-03-05 13:09:24 · 1388 阅读 · 0 评论 -
linux select延时函数
原文地址:https://blog.csdn.net/star871016/article/details/108550068?ivk_sa=1024320u使用select接口写高精确延时。select接口int select(int maxfdp, fd_set *readset, fd_set *writeset, fd_set *exceptset,struct timeval *timeout);原理利用select的timeout参数实现定时器;设置timeval的值,而将其他转载 2021-11-18 11:45:51 · 921 阅读 · 0 评论 -
linux usleep精度问题
原文地址:https://blog.csdn.net/weixin_42262944/article/details/107585320 最近在工作中遇到了一个应用程序usleep不准的问题,排查过程中了解了一下usleep的内核实现,简单的讲一下低精度模式下的usleep机制。 先把最终结论贴出来,内核使能 CONFIG_HIGH_RES_TIMERS选项,且平台支持高精度定时器模式,即可解决该问题。 下面主要来分析为什么在未使能高精度定时器的情况下,usleep不准的问题。参考文章可参转载 2021-11-17 14:46:42 · 3777 阅读 · 0 评论 -
c 实现crc16查表校验
原文地址:http://www.seven365.cn/2017/12/21/2017-12/21/crc16/C实现的CRC16算法CRC即循环冗余校验码是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。基本原理任意一个由二进制位串组成的代码都可以和一个系数仅为0和1取值的多项式一一对应。例如:代码1010111对应的多项式为x6+x4+x2+x+1,而多项式为x5+x3+x2+x+1对应的代码101111。CRC的种类标准CRC生成多项式如转载 2021-08-16 15:37:38 · 1893 阅读 · 0 评论 -
u-boot SPL是什么
什么是SPL?SPL(secondary program loader)是一个十分小的bin文件,它是用来引导主u-boot文件。对于一些SRAM很小的SOC,无法一次性加载ROM中的bootloader到SRAM中,因为一般SRAM远远小于bootloader的大小。这时候SPL应运而生了。加载过程嵌入式系统的SOC内部会有比较小的SRAM,而外部的一般会有DDR或者SDRAM,后面的RAM就是外部RAM;SPL会先被加载到SRAM中,然后初始化DDR或者SDRAM,总之会初始化外部的RAM,然后转载 2021-07-30 15:19:20 · 1255 阅读 · 0 评论 -
C 中&(type *)0)->field)的含义
应用场景:#define offsetof(type, field) (long)&(((type*)0)->field)type:表示一个结构体filed:表示type结构体的成员(type*)0:应该是表示结构体首地址(type*)0)->field:表示结构体成员field&(((type*)0)->field):表示成员field相对于结构体首地址的偏移地址作用:计算出type结构体成员filed在结构体中的偏移地址。如:struct str{原创 2021-07-01 11:51:42 · 1023 阅读 · 0 评论 -
udp 组播
先来了解下UDPUDP是UserDatagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17。UDP和TCP的区别:http://blog.csdn.net/ljheee/article/details/50823050UDP详解:http://blog.csd.转载 2021-06-04 17:56:22 · 386 阅读 · 0 评论 -
linux c void类型
原文地址:https://blog.csdn.net/men_wen/article/details/525656521.什么是void?void在英文中形容词的意思就是无效的,空的,空虚的意思,在C语言中就是空类型的意思。在C语言中,使用void这个类型时,有如下规则:void 只能修饰函数,不能修饰变量void * 函数、变量都可以被修饰122.void的使用2.1 void修饰变量用void 定义一个a,编译后会报错void a;//void.c: 在函数‘main’中:转载 2021-04-28 10:51:24 · 280 阅读 · 0 评论 -
linux c 字符串处理
原文地址:http://blog.chinaunix.net/uid-22985736-id-130099.html在C语言中,没有单独的字符串数据类型,而是通过字符数组的操作来实现的。字符串的内容保上在字符数组里,规定以“\0”为字符串的结束标志。一、字符串的定义和初始化char url[15]={'w','w','w','.','w','i','n','f','i','m','.','n','e','t','\0'};char url[15]={""};定义的同时进行初始化,则可以不指定其大转载 2021-03-25 17:27:24 · 206 阅读 · 0 评论 -
ubuntu16.04设置静态IP-亲测
原文地址:https://www.jianshu.com/p/d69a95aa1ed71、查询网络接口的名字打开命令行,输入ifconfig [区别windows是ipconfig]。ifconfig查询网络接口第一行最左边的名字,就是本机的网络接口,此处为 enp7s0 ,不同机器可能不同。2、打开修改文件修改/etc/network/interfaces 文件 [注意是interfaces,有s]。输入以下命令行sudo gedit /etc...转载 2020-12-08 11:36:57 · 481 阅读 · 0 评论 -
linux list_head 链表操作
原文地址:https://blog.csdn.net/wanshilun/article/details/79747710做内核驱动开发经常会使用linux内核最经典的双向链表 list_head, 以及它的拓展接口(或者宏定义): list_add , list_add_tail, list_del , list_entry ,list_for_each , list_for_each_entry ...... 每次看到这些接口,感觉都很像,今天专门研究了一下内核,对它们做一些总结,...转载 2020-11-30 17:33:21 · 208 阅读 · 0 评论 -
sizeof 结构体大小-2
原文地址:https://www.cnblogs.com/qiumingcheng/p/11370836.html简要说明:结构体成员按照定义时的顺序依次存储在连续的内存空间,但是结构体的大小并不是简单的把所有成员大小相加,而是遵循一定的规则,需要考虑到系统在存储结构体变量时的地址对齐问题。一、没有成员的结构体占用的空间是多少个字节? 答案是:1个字节。 这就是实例化的原因(空类同样可以被实例化),每个实例在内存中都有一个独一无二的地址,为了达到这个目的,编译器往往会给...转载 2020-11-04 15:28:19 · 268 阅读 · 0 评论 -
sizeof 结构体大小-1
原文地址:https://www.cnblogs.com/bewolf/p/4356903.html摘要:经常被计算结构体的sizeof给搞晕,于是找了个时间,静下心来,搞定它。一、为什么结构体计算这么乱?答案是字节对齐,计算机存储系统中以Byte为单位存储数据,不同数据类型所占的空间不同,如:整型(int)数据占4个字节,字符型(char)数据占一个字 节,短整型(short)数据占两个字节,等等。计算机为了快速的读写数据,默认情况下将数据存放在某个地址的起始位置,如:整型数据(int转载 2020-11-04 15:26:58 · 122 阅读 · 0 评论 -
linux wget命令
原文地址:https://www.cnblogs.com/cy-8593/p/9523035.htmlwget命令详解,断点续传(1)支持断点下传功能(2)同时支持FTP和HTTP下载方式(3)支持代理服务器(4)设置方便简单(5)程序小,完全免费wget虽然功能强大,但是使用起来还是比较简单的,基本的语法是:wget [参数列表] URL。下面就结合具体的例子来说明一下wget的用法。1、下载整个http或者ftp站点。wget http://place.your.url/he转载 2020-10-13 15:28:35 · 167 阅读 · 0 评论 -
scatterlist && DMA
原文地址:DMA是一种无须CPU的参与就可以让外设与系统内存之间进行双向数据传输的硬件机制。使用DMA可以是系统CPU从实际的IO数据传输过程中摆脱出来,从而大大提供系统的吞吐率。DMA方式的数据传输由DMA控制器(DMAC)控制,在传输期间,CPU可以并发地执行其他任务,当DMA结束后,DMAC通过中断通知CPU数据传输已经结束,然后由CPU执行相应的中断服务程序进行后续处理。在内存中用于与外设交互数据的一块区域被称作DMA缓冲区,在设备不支持scatter/gatherCSG,分散/聚集操作转载 2020-09-18 17:19:26 · 348 阅读 · 0 评论 -
看门狗原理
原文地址:https://blog.csdn.net/u012803067/article/details/59058186最近需要在板子上加上一块WatchDog,以确保在系统出错时自动重启,所以看了一些在嵌入式系统中使用看门狗的资料,现在总结如下:一、看门狗原理 在产品化的嵌入式系统中,为了使系统在异常情况下能自动复位,一般都需要引入看门狗。 看门狗其实就是一个可以在一定时间内被复位的计数器。当看门狗启动后,计数器开始自动计数,经过一定时间,如果没有被复位,计数器溢出就会对CP...转载 2020-06-01 16:31:45 · 12181 阅读 · 0 评论 -
linux测试sata硬盘读写速度
首先内核中要编译进去sata驱动,make menuconfig中将sata驱动选上,编译内核,在开发板上启动,然后fdisk -l查看磁盘分区,挂载上sata硬盘。第一种方法,利用dd命令。测试硬盘的读取速度:time dd if=/dev/sda1 of=/dev/null bs=1M count=10000这条命令是从硬盘sda1中读取10G的数据写到空设备上,就是数据读取抛空。测试硬盘写入速度:time dd if=/dev/zero of=/dev/...转载 2020-05-12 10:00:21 · 2139 阅读 · 0 评论 -
linux fsck
计算机难免会由于某些系统因素或人为误操作(突然断电)出现系统异常,这种情况下非常容易造成文件系统的崩溃,严重时甚至会造成硬件损坏。这也是我们一直在强调的“服务器一定要先关闭服务再进行重启”的原因所在。那么,如果真出现了文件系统损坏的情况,有办法修复吗?可以的,对于一些小问题,使用 fsck 命令就可以很好地解决。fsck 命令用于检查文件系统并尝试修复出现的错误。该命令的基本格式如下:[r...转载 2020-04-27 17:14:43 · 340 阅读 · 0 评论 -
C基本数据类型-32位和64位系统
一、读取数据的格式说明符除此之外:sizeof(char) =1sizeof(long long) =8sizeof(longdouble) =12...转载 2020-04-24 09:52:30 · 1142 阅读 · 0 评论 -
WIN10 samba访问报错:你不能访问此共享文件夹,因为你组织的安全策略...
问题:原文地址:https://jingyan.baidu.com/article/3aed632ed3b4d2701080918e.html方法/步骤 首先按window+R键打开运行。 在运行中输入“gpedit.msc”来启动本地组策略编辑器。 在编辑器中找到“计算机配置” 在“计算机配置”中找到“管理模板”并点击打开。 ...转载 2020-04-02 10:19:34 · 10421 阅读 · 8 评论 -
sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
问题描述今天在测试文件系统的时候,发现新创建的文件系统不能使用sudo命令,具体表现如下:sudo susudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set12在网上查了一下都说是要在超级用户权限下执行如下两个命令:chown root:root /usr/bin/sudochmod 475...转载 2020-03-15 16:20:12 · 4244 阅读 · 0 评论 -
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarly unavailable)
原文地址:https://blog.csdn.net/dxm809/article/details/103799537当我的Ubuntu 18.04.03 install某个东西时,给出下面提示E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarly unavailable)E: ...转载 2020-03-15 16:10:04 · 1170 阅读 · 0 评论 -
expect 脚本来实现自动将本地文件打包上传到远程服务器
博主也是最近在学习这个shell expect 如果有问题的话欢迎指正!我用了两种方法来实现: 用到的重要linux命令有(cat、grep、tar、awk、ssh)一、通过配置文件+shell脚本+expect脚本(shell脚本来获取配置文件信息然后将获得的参数传递给expect脚本)废话不多说上代码:poperties.cfg(配置文件)username=XXXip=XX...转载 2020-03-14 11:20:27 · 519 阅读 · 0 评论 -
expect语法
原文地址:https://www.cnblogs.com/li-daphne/p/7234721.htmlexpect一般用于实现用脚本来自动远程登录,对远程机器执行相关操作测试机上的expect目录一般在/usr/bin/expect路径下面是从网上查询的用法总结:1. expect中的判断语句:if { condition } { # do yo...转载 2020-03-14 11:18:12 · 2400 阅读 · 0 评论 -
Shell脚本-expect命令
原文地址:https://www.cnblogs.com/lixigang/articles/4849527.html一、概述 我们通过Shell可以实现简单的控制流功能,如:循环、判断等。但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能。而expect就使用来实现这种功能的工具。 expect是...转载 2020-03-14 11:09:45 · 498 阅读 · 0 评论 -
expect实现自动交互
原文地址:https://www.cnblogs.com/TDXYBS/p/11012089.html使用expect实现自动交互,shell命令行自动输入,脚本自动化,变量引用,expect spawn执行带引号命令,expect 变量为空,不生效,不能匹配通配符*,函数,数组背景有需求,在允许命令或者脚本跳出交互行,需要进行内容输入,但需要人手动输入,不是很方便,此时可以通过exp...转载 2020-03-14 10:18:58 · 434 阅读 · 0 评论 -
ubuntu18.04.3显示隐藏文件
1.按快捷键Ctrl+h显示隐藏文件".XXX"2.再次按Ctrl+h恢复不显示隐藏文件".XXX"原创 2020-03-01 14:06:30 · 874 阅读 · 0 评论 -
linux删除用户及其相关文件
su rootuserdel -r username再使用find命令查看,用户相关文件已经删除。find / -name *username*原创 2020-02-19 16:58:58 · 2849 阅读 · 0 评论 -
scp 命令
scp是securecopy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读readonlysystem时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然rsync比scp会快一点...转载 2020-02-18 22:22:37 · 175 阅读 · 0 评论 -
Ubuntu18.4设置永久DNS
1. 打开/etc/systemd/resolved.conf,设置变量DNS:$ sudo gedit/etc/systemd/resolved.conf2. 单击"save"按钮,保存设置3. 输入一下命令,使设置生效$ systemctl restart systemd-resolved //重启systemd-resolved服务$ systemctl ena...原创 2020-02-10 18:35:37 · 1902 阅读 · 1 评论 -
安装ubuntu18.4.3,老是出现蓝屏现象
场景:本人在win7 PC通过vmware15.1.0安装ubuntu18.4.3后,老是出现蓝屏现象,在百度搜索了一大堆解决办法,测试均失败。解决办法:重新安装win7旗舰版系统,并且使用win7激活工具激活。/*之前没激活就使用,PC开机老是提示需要激活,试用时间还剩下几天。*/ 重新创建ubuntu18.4.3虚拟机。原因分析:可能使用未激活的win7旗舰版系统就会导致蓝屏,...原创 2020-02-01 13:35:05 · 1645 阅读 · 0 评论 -
Linux查看安装包
rpm包安装的,可以用rpm -qa看到 rpm -qa | grep php以deb包安装的dpkg -l能看到 dpkg -l| grep phpyum方法安装的,可以用yum list installed查找yum list installed | grep php源码包安装,可以通过文件查找find / -name php...转载 2019-12-19 14:31:11 · 1762 阅读 · 0 评论 -
ubifs的由来
无序区块镜像文件系统(Unsorted Block Image File System, UBIFS)是用于固态存储设备上,并与LogFS相互竞争,作为JFFS2的后继文件系统之一。中文名无序区块镜像文件系统外文名UBIFS设计 时间2006年设计人IBM与Nokia简介真正开发于2007年,并于2008年10月第一次加入稳定版本于Linux核心2.6....转载 2019-12-19 10:52:23 · 164 阅读 · 0 评论 -
UBIFS文件系统
引言什么是UBIFS文件系统UBIFS是UBI file system的简称,用于裸的flash设备,作为jffs2的后继文件系统之一。UBIFS通过UBI子系统处理与MTD设备之间动作。UBIFS文件系统更适合MLCNAND FLASH。需要注意的是UBIFS并不是为SSD,MMC,SD,Compact Flash等之类的基于flash的存储设备,其是针对于裸flash设备。...转载 2019-12-19 10:50:27 · 582 阅读 · 0 评论 -
CRC原理和实例
CyclicRedundancyCheck循环冗余检验,是基于数据计算一组效验码,用于核对数据传输过程中是否被更改或传输错误。算法原理假设数据传输过程中需要发送15位的二进制信息g=101001110100001,这串二进制码可表示为代数多项式g(x) = x^14 + x^12 + x^9 + x^8 + x^7 + x^5 + 1,其中g中第k位的值,对应g(x)中x^k的系数。将...转载 2019-11-11 15:55:32 · 922 阅读 · 0 评论 -
TCP连接状态--如何判断一个TCP连接是否可用
在使用一个长连接的TCP时,如果TCP服务器端接收到TCP的客户端连接过来后,接着服务器端的TCP节点需要对这个客户端进行数据收发,收发时需要判断这个SOCKET是否可用用,判断方法有多种;linux的5种方法,本人在使用modbus服务器端判断已经连接的设备或是gprs服务器对已经连接的GPRS设备判断,推荐使用方法法一:当recv()返回值小于等于0时,socket连接断开。但是还...转载 2019-11-06 15:48:47 · 4406 阅读 · 0 评论 -
pthread _cond_wait()函数
原文地址:https://www.cnblogs.com/guxuanqing/p/10576691.html近期学习了线程等待和激活的相关知识。先介绍几个api:pthread_cond_t表示多线程的条件变量,用于控制线程等待和就绪的条件。一:条件变量的初始化:条件变量和互斥锁一样,都有静态动态两种创建方式,静态方式使用PTHREAD_COND_INITIALIZER常...转载 2019-10-24 17:05:35 · 730 阅读 · 0 评论 -
Linux 大小端转换函数
原文地址:https://blog.csdn.net/jk110333/article/details/7872695小心不要假设字节序. PC 存储多字节值是低字节为先(小端为先, 因此是小端), 一些高级的平台以另一种方式(大端)工作. 任何可能的时候, 你的代码应当这样来编写, 它不在乎它操作的数据的字节序. 但是, 有时候一个驱动需要使用单个字节建立一个整型数或者相反, 或者它必须与一...转载 2019-10-14 16:38:34 · 5121 阅读 · 0 评论