自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

转载 Linux cache与buffer的探讨

在free 指令中,除了显示物理内存的使用量,还有交换区与内核缓冲区的使用情况。swap就我个人的理解是,当物理内存不够用时,linux将一部分硬盘空间当做内存,把一些很久不适用的内存数据转移到硬盘中。buffer 在操作系统中指 buffer cache, 中文一般翻译为 “缓冲区”。首先,扇区和块需要了解,扇区是设备的最小寻址单元,也叫 “硬扇区” 或 “设备块”。块是操作系统中文件系统的最小寻址单元,也叫 “文件块” 或 “I/O 块”。每个块包含一个或多个扇区,但大小不能超过一个页面,所以一

2020-05-29 18:42:57 727

原创 c++利用sscanf分割字符

c++分割字符串我一直是用自定义函数来做的,今天刷题看到一个sscanf函数的用法竟然可以直接分割规则的字符串,太强了,决定做个记录。数据格式:%c 一个单一的字符%d 一个十进制整数%i 一个整数%e, %f, %g 一个浮点数%o 一个八进制数%s 一个字符串%x 一个十六进制数%p 一个指针%n 一个等于读取字符数量的整数%u 一个无符号整数%[] 一个字符集%% 一个精度符号date = “2019-06-30”int year, month, day;sscanf(

2020-05-26 19:01:20 1191

原创 C++ 遍历char数组时候auto&和auto区别

在探究string与char*内存存放字符串位置时候, 偶然发现auto &与auto结果有区别,开一个章节,探讨一下。int main(){ char temp[20] = "012345678901234567";// 长度18 //temp[19] = '\0'; int *a = (int *)malloc(sizeof(int)); // 通过 malloc 申请的内存位于堆中 int b = 0;// 通过编辑器初始化的内存位于栈中 int len = 18; //fo

2020-05-25 20:37:11 2012 1

原创 TCP协议选项读书笔记

首先附上TCP三次握手和四次挥手过程图,结合理解SO_REUSEADDR,使用这个选项可以让端口释放后立即使用,主要针对上图time_wait阶段,在bind前设置这个套接字选项。允许启动一个监听服务器并捆绑其众所周知的端口,并且以前建立的将此端口用做它们的本地端口的连接仍存在。 这通常是重启监昕服务器时会出现的情况,若不设置此选项,则bind时将出错。允许在同一端口上启动同一服务器的多个实例,只要每个实例捆绑一个不同的本地IP地址即可允许单个进程捆绑同一端口到多个套接口上,只要每个进程捆绑

2020-05-24 19:16:16 218

原创 对netstat补充笔记

对后台核心技术开发与实践一书netstat命令的补充:netstat 中关于refcnt的解释为连接本套接字的进程号type:SOCK_STREAM是基于TCP的,TCP协议是一种可靠的数据传输协议,所以SOCK_STREAM数据传输比较有保障的面向连接的SOCKET。SOCK_DGRAM是基于UDP的,而UDP协议是一种尽最大努力交付的传输协议,传送过程中游客能导致部分数据的流失,所以SOCK_DGRAM是一种无保障面向连接的SOCKET。SOCK_STREAM 是数据流,一般是tcp/ip协议

2020-05-24 16:54:07 209

原创 进程间通讯—信号量

上文说共享内存的缺点可以尝试信号量弥补多线程信号量是POSIX信号量,进程间通信是SYSTEM v信号量POSIX sem 实现是基于futex的。 在无竞争条件下,不需要陷入内核,执行系统调用,其实现是非常轻量级的。System V sem 则不同,无论有无竞争都要执行系统调用,因此性能落了下风。头文件:#include <sys/types.h>#include <sys/ipc. h>#include <sys/sem.h>int semget(ke

2020-05-24 15:41:19 181

原创 进程间通讯-共享内存

今天开共享内存总结:在Linux进程间通信的方式中,共享内存是一种最快的IPC方式。因此,共享内存用于实现进程间大量的数据传输,共享内存的话,会在内存中单独开辟一段内存空间,这段内存空间有自己特有的数据结构,包括访问权限、大小和最近访问的时间等。优点:(引用https://www.cnblogs.com/readlearn/p/10806417.html)上图可知,普通进程通信复制四次,共享内存两次。使用头文件:#include <sys/shm.h>int shmget(key

2020-05-24 14:07:57 276

原创 网络编程各位数掩码二进制对应十进制

最近总结一份掩码对应表,对直观理解网络字节序(大端序)也有所帮助,分享一下:

2020-05-24 11:12:36 659

原创 进程间通讯读书笔记

进程间通讯以及他们的优缺点本质:一切皆文件1.管道:pipe缺点:单向,半双工,缓冲区受限制,传输无格式字节流过程:一读一写头文件#include <unistd.h>有名:int mkfifo (canst char * pathname, mode t mode)该函数的第一个参数是一个普通的路径名,也就是创建后FIFO的名字。 第二个参数与打开普通文件的open()函数中的mode参数相同。 如果mkfifo的第一个参数是一个已经存在的路径名时,会返回EXIST错误,所

2020-05-24 01:20:55 127

原创 深入了解计算机系统读书笔记

读书笔记——网络编程篇:一:将网络当做一个外接I/O设备ALU:CPU算数逻辑运算单元DMA:(Direct Memory Access,直接存储器访问)指外部设备不通过CPU而直接与系统内存交换数据的接口技术。这样数据的传送速度就取决于存储器和外设的工作速度。1.1网络分级局域网—集线器,复制每个数据包到每个口局域网通过网桥联合:网桥已经开始学会丢弃帧了,与路由器区别是他是在数据链路层工作,路由器在网络层。局域网到广域网1.2协议协议是为了让不同网络间也能互相通讯,实现了两点

2020-05-23 23:52:30 279

原创 关于stl中vector的push_back的探究

面试中被问到vector的内存增长方式是否自己试过,十分羞愧只是道听途说,之后在博客上看到了一些源码分析才有所了解,以下内容转载部分为网址形式,个人实验内容贴出细节,转载部分侵权删。push_back的源码解析:https://blog.csdn.net/cxc576502021/article/details/83020617之后是我关于push_back的自己试验,实验发现,我使用的版本push_back是1.5倍增长的,并不是网上说的两倍,不过这个看源码应该是可以改动的系数,贴上我的实验图片和代

2020-05-15 13:03:06 305

转载 linux、windows目标文件后缀

可重定位文件(Relocatable File)这类文件包含了代码和数据,可以被用来链接成可执行文件或共享目标文件,静态链接库也属于这一类 linux的.owindows的.obj可执行文件(Executable File)这类文件包含了可以直接执行的程序,它的代表就是ELF可执行文件,它们一般都没有扩展名 比如/bin/bash文件;window的.exe共享目标文件(Shared Object File)这种文件包含了代码和数据,可以在以下两种情况下使用。一种是连接器可以使用这种文件

2020-05-15 01:40:31 3254

转载 关于一个程序预处理编译链接过程

面试被问到了,感觉很多细节没有答上来,做一个记录主要的问题一个是如果#include,那么是不是在编译过程中展开这个头文件并且会在链接过程中链接这个库呢?这个问题等我找答案补充以下是寻找答案中看到的两个不错的博客,贴上链接地址,具体感觉还是得看一下深入了解计算机系统这本书。1.http://www.360doc.com/content/19/0928/15/36367108_863713144.shtml2.https://blog.csdn.net/guaiguaihenguai/article/

2020-05-15 01:28:11 104

原创 linux 命令查找文件中指定字符串

首先介绍grep:grep -a x(意思为after) 查找匹配的之后几行grep -b x(意思为abefore) 查找匹配的之前几行grep -c x(意思为context) 查找匹配的前后几行grep -i [指定字条串] [文件] 不分大小写在文件中查找指定字符串grep -i [指定字条串] [文件] 同上-v 排除指定字符串grep -e 指定字条串 -e 指定字条串 filename 使用grep -e 选项,只能传递一个参数。在单条命令中使用多个 -e 选项,匹配多个字符串

2020-05-14 13:44:46 2105

原创 Linux ubuntu系统修改网卡名称为ethx

有时候,重装linux系统会遇到网卡名称不为ethx的情况,解决方案如下:1.vim /etc/default/grub2.修改对应位置,GRUB_CMDLINE_LINUX=“net.ifnames=0 biosdevname=0”解释:net.ifnames 的命名规范为: 设备类型+设备位置+数字设备类型:en 表示Ethernetwl 表示WLANww 表示无线广域网WWAN实际的例子:eno1 板载网卡enp0s2 pci网卡ens33 pci网卡wlp3s0

2020-05-11 13:33:39 561

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除