linux
Tobiu
才能不是来自于别人,而是自己的勤奋,不断学习,不断锻炼,不断总结积累。
展开
-
内存调试器
源地址:Memory Debuggers有几种工具可用于查找内存泄漏或用于报告程序的各个内存分配。 这些工具可帮助分析内存使用模式,检测不平衡的分配和释放,报告缓冲区超载和欠载等。内容:mtrace memwatch mpatrol dmalloc dbgmem valgrind Electric Fence Tutorials or Overviews1.mtracemtrace是glibc的内置部分,它可以检测由不平衡的malloc / free调用引起的内存泄漏。.翻译 2020-08-17 17:57:21 · 509 阅读 · 0 评论 -
c++的内存问题---内存碎片
1.内存碎片描述一个系统中所有的不可用的空闲内存。这些资源之所以仍然未被使用,是因为负责分配内存的分配器使这些内存无法使用(malloc/new分配的是连续性空间,导致小内存无法分配)。这一问题通常都会发生,原因在于空闲内存以小而不连续方式出现在不同的位置。由于分配方法决定内存碎片是否是一个问题,因此内存分配器在保证空闲资源可用性方面扮演着重要的角色。实际上这些空闲内存碎片存在的方式有两种: a.外碎片:外部碎片指的是还没有被分配出去(不属于任何进程),但由于太小了无法分配给申请内...原创 2020-08-14 16:20:30 · 2445 阅读 · 0 评论 -
expect脚本实现自动化操作
1.expect环境搭建expect是一个免费的编程语言工具,用来实现自动和交互式任务进行通信,而无需人的干预。环境的安装和一些简单的例子可以参看:Shell脚本学习之expect命令运行环境:ubuntu162.例子始于懒,才想法设法的做一些自动化的操作,把日常的重复性动作改造成越来越简单的动作,比如远程拷贝文件,ssh登录等。2.1 自动scp# FileN...原创 2019-02-25 11:33:22 · 796 阅读 · 2 评论 -
Linux内核模块编程
1.Linux内核模块编程特点1)不能使用C库和C标准头文件2)必须使用GNU规范3)没有内存保护机制4)不能处理浮点运算5)注意同步和并发的问题6)注意可移植性2.函数架构int xxx(void){ return 0;//成功 return 负值;//失败} void yyy(void){ }/* 使用module_init(...原创 2019-01-30 17:19:30 · 334 阅读 · 1 评论 -
Linux字符驱动
1.Linux设备驱动分类按管理的设备硬件来分:字符设备,块设备,网络设备。1)字符设备 按字节流访问,能够顺序访问,也能够指定位置访问,如:按键 串口 终端 触摸屏 LCD等。2)块设备 在Unix系统下,块设备按一定的数据块进行访问,数据块为512bytes 1K等。 在Linux下,块设备既可以按数据块的方式访问,也可以安字节流访问, 他和字符设备的区别在于...原创 2019-01-31 15:02:00 · 392 阅读 · 0 评论 -
Ubuntu使用 ls 可以查看到执行文件,但执行却提示不存在
Ubuntu系统是 64 位的,而可执行程序是 32 位的,需要支持32位的运行库 ia32-libs,使用下面的命令: #apt-get install ia32-libs然而,结果提示已经被其它包代替了,那就根据指示来呗: #apt-get install lib32ncurses5 lib32z1下载完成后,完美执行程序。...原创 2018-06-30 17:18:42 · 3973 阅读 · 0 评论 -
获取本地ip,mac地址---Linux C
/*------------------------------------------------------------------- Filename : getLocalIP.c- CreateTime : 2018-05-28 17:15- Author : tobiu- Description : get ...原创 2018-05-28 17:25:27 · 1127 阅读 · 0 评论 -
Linux C语言生成随机数
本文主要介绍2个函数:rand()和srand();1.rand()函数 是产生随机数的一个随机函数:#include <stdlib.h>int rand(void);return value: 为一个随机数值,范围咋0至RAND_MAX之间(定义在stdlib.h,如下) /* The largest number rand will return (sam...原创 2018-04-06 13:49:42 · 5392 阅读 · 0 评论 -
C语言函数的参数能允许几个
今天编写一个函数,需要传的参数比较多,算起来也有11个,突发奇想,一个函数能允许接收几个参数,还是没有限制,但是这样会影响函数的效率吗?带着所惑,在网上找了一些资料,最后对函数加了结构体进行改造。如有一些建议或还未考虑到的地方,还请相互指教。 一个函数的参数的数目没有明确的限制,但是参数过多(例如超过8个)显然是一种不可取的编程风格。参数的数目直接影响调用函数的速度,参数越多,调用函数就...原创 2017-05-25 00:01:07 · 22709 阅读 · 0 评论 -
C语言socket通信实例
1.简要分析: socket分为服务端和客户端: .服务端监听端口发来的请求,收到后向客户端回应数据。 .客户端负责发送消息。2.创建步骤: 服务器:建立socket,绑定socket和地址信息,开启监听,收发数据。 客户端:建立socket,连接服务器端,收发数据。下面我们以TCP通信为例:/********...原创 2017-12-25 16:12:12 · 6241 阅读 · 0 评论 -
C语言的静态库与动态库
1.什么是库 库是一种可执行代码的二进制形式,可以直接被操作系统载入内存执行。 通常我们会将一些常用的函数封装成一个库,提供接口给其它程序文件调用。这样一来,省去了重复写该函数接口。当我们使用该函数时,就可以直接将我们所需要的文件链接到我们的程序中,提高了开发效率。2.库的分类 linux下的库分为2种:动态库和静态库。 主要区别: @静态...原创 2018-03-07 23:32:57 · 2368 阅读 · 0 评论