linux应用编程
文章平均质量分 90
Grace、
这个作者很懒,什么都没留下…
展开
-
VXlan 技术实现原理
Vxlan 概况VXLAN(Virtual eXtential LAN)意为虚拟可拓展局域网。随着大数据、云计算技术的兴起以及虚拟化技术的普及,VLAN技术的弊端逐渐显现出来,具体表现为如下3个方面:(1) 虚拟化技术的发展促使大数据、云计算技术公司采用单个物理设备虚拟多台虚拟机的方式来进行组网,随着应用模块的增加,对于支持VLAN数目的要求也在提升,802.1Q标准中的最多支持4094个VLAN的能力已经无法满足当下需求。(2) 公有云提供商的业务要求将实体网络租借给多个不同的用户,这些用户对于网络转载 2021-03-05 15:43:43 · 536 阅读 · 0 评论 -
一些挺有用的Linux命令总结
Linux命令dd 命令hexdumpdd 命令dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2参数注释:if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >ibs=bytes:一次读入bytes个字节,即指定一个块大小为byt原创 2021-01-12 15:02:51 · 232 阅读 · 0 评论 -
c lua API 及 读取lua配置文件
一、lua c api 是什么 C API是一组能使C/C++代码与Lua交互的函数。其中包括读写Lua全局变量、调用Lua函数、运行一段Lua代码,以及注册C函数以供Lua代码调用等。二、常用api 在Lua和C语言之间进行数据交换时,由于两种语言之间有着较大的差异,比如Lua是动态类型,C语言是静态类型,Lua是自动内存管理,而C语言则是手动内存管理。为了解决这些问题,Lua的设计者使用了虚拟栈作为二者之间数据交互的介质。在C/C++程序中,如果要获取Lua的值,只需调用Lua的C API函原创 2021-01-11 15:21:57 · 1586 阅读 · 1 评论 -
Linux 不常用系统函数总结
Linux 系统函数sleep()和sched_yield()sleep()和sched_yield()sched_yield()会让出当前线程的CPU占有权,然后把线程放到静态优先队列的尾端,然后一个新的线程会占用CPU。那这个和sleep()有啥区别呢?sched_yield()这个函数可以使用另一个级别等于或高于当前线程的线程先运行。如果没有符合条件的线程,那么这个函数将会立刻返回然后继续执行当前线程的程序。而sleep则是等待一定时间后等待CPU的调度,然后去获得CPU资源(这也是uslee原创 2020-12-11 10:07:29 · 190 阅读 · 0 评论 -
Linux top 命令
top命令用法top命令经常用来监控linux的系统状况,是常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况。top的使用方式 top [-d number] | top [-bnp]参数解释:-d:number代表秒数,表示top命令显示的页面更新一次的间隔。默认是5秒。 -b:以批次的方式执行top。 -n:与-b配合使用,表示需要进行几次top命令的输出结果。 -p:指定特定的pid进程号进行观察。在top命令显示的页面还可以输入以下按键执行相应的功能(注意大小写区分的转载 2020-11-09 10:29:17 · 125 阅读 · 0 评论 -
make源文件时出现 cannot find -lstdc++ 错误
解决CentOS 7 中,make源文件时出现 /usr/bin/ld: cannot find -lstdc++ 错误在CentOS 7中,使用static方法编译,需要安装static version of glibc-static libstdc+±static。使用如下命令安装yum install glibc-static libstdc+±static...原创 2020-05-26 09:46:18 · 529 阅读 · 0 评论 -
Murmurhash 哈希算法 介绍与实现
最近在项目代码中看到了一种hash算法,以前没有遇见过,在此记录下来。 一、介绍 MurmurHash 是一种非加密型哈希函数,适用于一般的哈希检索操作。 由Austin Appleby在2008年发明, 并出现了多个变种,都已经发布到了公有领域(public domain)。与其它流行的哈希函数相比,对于规律性较强的key,MurmurHash的随机分布特征表现更良好。—摘自w...原创 2019-10-31 15:47:05 · 25353 阅读 · 3 评论 -
哈希表
文章目录一、哈希表二、代码实现 一、哈希表 哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 记录的存储位置=f(关键字) 这里的对应关系f称为散列函数,又称为哈希(Hash函数),采用散列...原创 2019-10-31 15:33:47 · 138 阅读 · 0 评论 -
hash函数总结
文章目录一、性能分析二、各类hash函数代码 一、性能分析 常用的字符串Hash函数还有ELFHash,APHash等等,都是十分简单有效的方法。这些函数使用位运算使得每一个字符都对最后的函数值产生影响。另外还有以MD5和SHA1为代表的杂凑函数,这些函数几乎不可能找到碰撞。 常用字符串哈希函数有BKDRHash,APHash,DJBHash,JSHash,RS...转载 2019-10-31 15:13:37 · 542 阅读 · 0 评论 -
数据结构及算法基础 之图(四) 图的深度优先遍历
文章目录一、深度优先遍历的递归定义二、基本实现思想三、示例测试 一、深度优先遍历的递归定义 假设给定图G的初态是所有顶点均未曾访问过。在G中任选一顶点v为初始出发点(源点),则深度优先遍历可定义如下:首先访问出发点v,并将其标记为已访问过;然后依次从v出发搜索v的每个邻接点w。若w未曾访问过,则以w为新的出发点继续进行深度优先遍历,直至图中所有和源点v有路径相通的...原创 2019-10-31 14:07:02 · 911 阅读 · 0 评论 -
数据结构及算法基础 之图(二)邻接表
文章目录一、邻接表二、代码实现 一、邻接表 邻接矩阵看上去是个不错的选择,首先是容易理解,第二是索引和编排都很舒服~但是我们也发现,对于边数相对顶点较少的图,这种结构无疑是存在对存储空间的极大浪费。因此我们可以考虑另外一种存储结构方式,例如把数组与链表结合一起来存储,这种方式在图结构也适用,我们称为邻接表(AdjacencyList)。邻接表的处理方法是这样:...原创 2019-10-31 11:23:24 · 768 阅读 · 0 评论 -
二叉搜索树(排序二叉树)
文章目录一、排序二叉树性质二、代码实例三、测试结果 一、排序二叉树性质就是若它的左子树不空,则左子树上所有节点的值均小于它的根节点的值;若它的右子树不空,则右子树上所有节点的值均大于其根节点的值。换句话说就是:任何节点的键值一定大于其左子树中的每一个节点的键值,并小于其右子树中的每一个节点的键值。 二、代码实例tree.h#ifndef __...原创 2019-10-31 10:14:43 · 221 阅读 · 0 评论 -
C语言实现md5函数代码
在网上找到的实现md5函数代码,包括一个头文件md5.h和一个源文件md5.c,用下面的测试代码test.c测试通过,各文件依次如下:md5.h:#ifndef MD5_H#define MD5_H typedef struct{ unsigned int count[2]; unsigned int state[4]; unsigned char buffer...转载 2019-10-29 19:23:53 · 1199 阅读 · 0 评论 -
Linux 利用c函数操作Mysql
文章目录前言API 前言在Linux应用编程中,无法避免的会使用到MySQL,这时我就必须对MySQL c API 非常熟悉,这里我将一些常见的记录在此。 APImysql_affected_rows() //返回上次UPDATE、DELETE或INSERT查询更改/删除/插入的行数。mysql_autocommit()...原创 2019-10-29 17:14:05 · 193 阅读 · 0 评论 -
基于数据库MySQL的简易学生信息管理系统
文章目录前言一、基本要求二、步骤1. 写一个sql脚本2. 编写代码3. 编译三、运行现象 前言 通过这几天学习Mysql数据库,对其也有了基本的了解,为了加深印象,于是就写了一个最简易的学生信息管理系统。 一、基本要求通过已知用户名和密码进行登录;可以显示菜单;可以随时插入学生信息;可以删除学生信息;可以通过学生姓名或学号显示学生所有信息...原创 2019-10-29 11:27:30 · 5004 阅读 · 1 评论 -
建立开发板与PC机之间的nfs服务器
文章目录前言一、配置1. 安装 NFS 相关组件2. 建立NFS共享文件夹3. 设置共享目录 修改主机 /etc/exports 文件,添加如下代码4. 服务操作指令二、测试三、ARM开发板和PC机挂接 前言ARM开发板与PC通过NFS 网络文件系统挂接,很方便文件的移动,也为我们的开发带来了方便。接下来,我就详细的介绍下如何建立ARM与PC机的挂接。我是用的UBu...原创 2019-10-29 11:11:36 · 473 阅读 · 0 评论 -
Linux多人群聊系统(简单多线程服务器)
文章目录一、要求二、提示1. 服务器端2. 客户端三、程序四、测试 一、要求通过一个服务器实现最多5个客户之间的信息群发。服务器显示客户的登录与退出;客户连接后首先发送客户名称,之后发送群聊信息;客户输入bye代表退出,在线客户能显示其他客户的登录于退出。 二、提示1. 服务器端主线程: 定义一个全局客户信息表ent,每个元素对应一个客...原创 2019-10-29 10:53:38 · 290 阅读 · 0 评论 -
Linux 利用socket实现文件传输
文章目录一、要求二、实现提示:三、程序四、现象 一、要求 利用Linux Socket进行文件传输,本次只支持client端向sever端上传文件 二、实现提示:client.cclient的参数有两个,分别是服务器主机名和端口;在while循环中输入你想要传输的文件名,然后建立socket,通过服务器主机名和端口连接服务器;打开文件,在wh...原创 2019-10-29 10:39:34 · 4163 阅读 · 4 评论 -
Smart210学习记录(十三) 之竞态与并发
文章目录一、自旋锁二、 信号量三、自旋锁VS信号量:四、总结: 一、自旋锁 若一个进程要访问临界资源,测试锁空闲,则进程获得这个锁并继续执行;若测试结果表明锁扔被 占用,进程将在一个小的循环内重复“测试并设置”操作,进行所谓的“自旋”,等待自旋锁持有者释 放这个锁。自旋锁与互斥锁类似,但是互斥锁不能用在可能睡眠的代码中,而自旋锁可以用在可睡 眠的代码中,典型的应用是...原创 2019-10-28 17:24:11 · 180 阅读 · 0 评论 -
linux应用编程---控制程序转回到被保存的位置
有时候,当接收到一个信号时,希望能跳回程序中以前的一个位置执行。例如,在有的程序内,当用户按了中断键,则程序跳回到显示主菜单执行。我们可以用库系统调用setjmp()和 longjmp()来完成这项工作。setjmp()能保存程序中的当前位置(是通过保存堆栈环境实现的),longjmp()能把控制转回到被保存的位置。在某种意义上,longjmp()是远程跳转,而不是局部区域内的跳转。我们必须注原创 2016-06-16 21:33:01 · 206 阅读 · 0 评论 -
linux应用编程----进程间通讯kill
一个进程通过对 signal()的调用来处理其它进程发送来的信号。同时,一个进程也可以向其它的进程发送信号。这一操作是由系统调用 kill()来完成的。 kill()在 linux 系统库 signal.h中的函数声明如下: int kill(pid_t pid, int sig);参数 pid 指定了信号发送的对象进程:它可以是某个进程原创 2016-06-16 21:15:53 · 351 阅读 · 0 评论