
linux
文章平均质量分 63
dragon_cdut
和大家一起学习交流是快乐
展开
-
十大经典排序算法
原文地址:一文搞掂十大经典排序算法_不才伟才的博客-优快云博客一文搞掂十大经典排序算法今天整理一下十大经典排序算法。1、冒泡排序——越小的元素会经由交换慢慢“浮”到数列的顶端算法演示算法步骤比较相邻的元素。如果第一个比第二个大,就交换它们两个;对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;针对所有的元素重复以上的步骤,除了最后一个;重复步骤1~3,直到排序完成。算法实现def bubbleSort(arr): for..转载 2022-04-14 13:47:06 · 170 阅读 · 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 · 8271 阅读 · 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 · 1501 阅读 · 0 评论 -
linux select延时函数
原文地址:https://blog.youkuaiyun.com/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 · 1000 阅读 · 0 评论 -
linux usleep精度问题
原文地址:https://blog.youkuaiyun.com/weixin_42262944/article/details/107585320 最近在工作中遇到了一个应用程序usleep不准的问题,排查过程中了解了一下usleep的内核实现,简单的讲一下低精度模式下的usleep机制。 先把最终结论贴出来,内核使能 CONFIG_HIGH_RES_TIMERS选项,且平台支持高精度定时器模式,即可解决该问题。 下面主要来分析为什么在未使能高精度定时器的情况下,usleep不准的问题。参考文章可参转载 2021-11-17 14:46:42 · 4369 阅读 · 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 · 2393 阅读 · 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 · 1533 阅读 · 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 · 1107 阅读 · 0 评论 -
udp 组播
先来了解下UDPUDP是UserDatagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17。UDP和TCP的区别:http://blog.youkuaiyun.com/ljheee/article/details/50823050UDP详解:http://blog.csd.转载 2021-06-04 17:56:22 · 458 阅读 · 0 评论 -
linux c void类型
原文地址:https://blog.youkuaiyun.com/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 · 327 阅读 · 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 · 249 阅读 · 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 · 560 阅读 · 0 评论 -
linux list_head 链表操作
原文地址:https://blog.youkuaiyun.com/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 · 251 阅读 · 0 评论 -
sizeof 结构体大小-2
原文地址:https://www.cnblogs.com/qiumingcheng/p/11370836.html简要说明:结构体成员按照定义时的顺序依次存储在连续的内存空间,但是结构体的大小并不是简单的把所有成员大小相加,而是遵循一定的规则,需要考虑到系统在存储结构体变量时的地址对齐问题。一、没有成员的结构体占用的空间是多少个字节? 答案是:1个字节。 这就是实例化的原因(空类同样可以被实例化),每个实例在内存中都有一个独一无二的地址,为了达到这个目的,编译器往往会给...转载 2020-11-04 15:28:19 · 318 阅读 · 0 评论 -
sizeof 结构体大小-1
原文地址:https://www.cnblogs.com/bewolf/p/4356903.html摘要:经常被计算结构体的sizeof给搞晕,于是找了个时间,静下心来,搞定它。一、为什么结构体计算这么乱?答案是字节对齐,计算机存储系统中以Byte为单位存储数据,不同数据类型所占的空间不同,如:整型(int)数据占4个字节,字符型(char)数据占一个字 节,短整型(short)数据占两个字节,等等。计算机为了快速的读写数据,默认情况下将数据存放在某个地址的起始位置,如:整型数据(int转载 2020-11-04 15:26:58 · 173 阅读 · 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 · 204 阅读 · 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 · 413 阅读 · 0 评论 -
看门狗原理
原文地址:https://blog.youkuaiyun.com/u012803067/article/details/59058186最近需要在板子上加上一块WatchDog,以确保在系统出错时自动重启,所以看了一些在嵌入式系统中使用看门狗的资料,现在总结如下:一、看门狗原理 在产品化的嵌入式系统中,为了使系统在异常情况下能自动复位,一般都需要引入看门狗。 看门狗其实就是一个可以在一定时间内被复位的计数器。当看门狗启动后,计数器开始自动计数,经过一定时间,如果没有被复位,计数器溢出就会对CP...转载 2020-06-01 16:31:45 · 12932 阅读 · 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 · 2464 阅读 · 0 评论 -
linux fsck
计算机难免会由于某些系统因素或人为误操作(突然断电)出现系统异常,这种情况下非常容易造成文件系统的崩溃,严重时甚至会造成硬件损坏。这也是我们一直在强调的“服务器一定要先关闭服务再进行重启”的原因所在。那么,如果真出现了文件系统损坏的情况,有办法修复吗?可以的,对于一些小问题,使用 fsck 命令就可以很好地解决。fsck 命令用于检查文件系统并尝试修复出现的错误。该命令的基本格式如下:[r...转载 2020-04-27 17:14:43 · 440 阅读 · 0 评论 -
C基本数据类型-32位和64位系统
一、读取数据的格式说明符除此之外:sizeof(char) =1sizeof(long long) =8sizeof(longdouble) =12...转载 2020-04-24 09:52:30 · 1209 阅读 · 0 评论 -
WIN10 samba访问报错:你不能访问此共享文件夹,因为你组织的安全策略...
问题:原文地址:https://jingyan.baidu.com/article/3aed632ed3b4d2701080918e.html方法/步骤 首先按window+R键打开运行。 在运行中输入“gpedit.msc”来启动本地组策略编辑器。 在编辑器中找到“计算机配置” 在“计算机配置”中找到“管理模板”并点击打开。 ...转载 2020-04-02 10:19:34 · 10674 阅读 · 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 · 4381 阅读 · 0 评论 -
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarly unavailable)
原文地址:https://blog.youkuaiyun.com/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 · 1204 阅读 · 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 · 586 阅读 · 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 · 2614 阅读 · 0 评论 -
Shell脚本-expect命令
原文地址:https://www.cnblogs.com/lixigang/articles/4849527.html一、概述 我们通过Shell可以实现简单的控制流功能,如:循环、判断等。但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能。而expect就使用来实现这种功能的工具。 expect是...转载 2020-03-14 11:09:45 · 561 阅读 · 0 评论 -
expect实现自动交互
原文地址:https://www.cnblogs.com/TDXYBS/p/11012089.html使用expect实现自动交互,shell命令行自动输入,脚本自动化,变量引用,expect spawn执行带引号命令,expect 变量为空,不生效,不能匹配通配符*,函数,数组背景有需求,在允许命令或者脚本跳出交互行,需要进行内容输入,但需要人手动输入,不是很方便,此时可以通过exp...转载 2020-03-14 10:18:58 · 494 阅读 · 0 评论 -
ubuntu18.04.3显示隐藏文件
1.按快捷键Ctrl+h显示隐藏文件".XXX"2.再次按Ctrl+h恢复不显示隐藏文件".XXX"原创 2020-03-01 14:06:30 · 921 阅读 · 0 评论 -
linux删除用户及其相关文件
su rootuserdel -r username再使用find命令查看,用户相关文件已经删除。find / -name *username*原创 2020-02-19 16:58:58 · 3005 阅读 · 0 评论 -
scp 命令
scp是securecopy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读readonlysystem时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然rsync比scp会快一点...转载 2020-02-18 22:22:37 · 216 阅读 · 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 · 2094 阅读 · 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 · 1700 阅读 · 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 · 1870 阅读 · 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 · 196 阅读 · 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 · 651 阅读 · 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 · 1024 阅读 · 0 评论 -
TCP连接状态--如何判断一个TCP连接是否可用
在使用一个长连接的TCP时,如果TCP服务器端接收到TCP的客户端连接过来后,接着服务器端的TCP节点需要对这个客户端进行数据收发,收发时需要判断这个SOCKET是否可用用,判断方法有多种;linux的5种方法,本人在使用modbus服务器端判断已经连接的设备或是gprs服务器对已经连接的GPRS设备判断,推荐使用方法法一:当recv()返回值小于等于0时,socket连接断开。但是还...转载 2019-11-06 15:48:47 · 4927 阅读 · 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 · 809 阅读 · 0 评论 -
Linux 大小端转换函数
原文地址:https://blog.youkuaiyun.com/jk110333/article/details/7872695小心不要假设字节序. PC 存储多字节值是低字节为先(小端为先, 因此是小端), 一些高级的平台以另一种方式(大端)工作. 任何可能的时候, 你的代码应当这样来编写, 它不在乎它操作的数据的字节序. 但是, 有时候一个驱动需要使用单个字节建立一个整型数或者相反, 或者它必须与一...转载 2019-10-14 16:38:34 · 5554 阅读 · 0 评论