自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

苞米地里捉小鸡的博客

这是个程序弱鸡的博客,说的都是屁话

  • 博客(17)
  • 资源 (1)
  • 收藏
  • 关注

原创 同步IO、异步IO与阻塞非阻塞的关系

1、什么是同步、异步总之:可以将同步、异步行为理解为不同的行为方式定义:同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)。同步,就是调用某个东西时,调用方得等待这个调用返回结果才能继续往后执行。异步,和同步相反 调用方不会理解得到结果,而是在调用发出后、调用者可用继续执行后续操作,被调用者通过信号来...

2020-04-26 10:24:20 165

原创 Unix网络编程中INADDR_ANY"的含义是什么?

写在前面:总之就是表示本机的IP地址因为一个主机可能不像我们普通的笔记本一般只拥有一块网卡,这对于需要进行大规模处理并发消息的服务器来说更是。所以将sin_addr.s_addr设置为INADDR_ANY就是等于能够证明主机IP地址的所有IP。因为这个字符串0.0.0.0转换成网络通用的二进制地址就是0,所以可以不加htonl将其转换成网络通用格式,但是为了标准的归一化,建议如下使用:s...

2020-04-25 14:41:48 852

原创 sockaddr和sockaddr_in的区别

写在最前:这两个结构体主要的区别就是我们(指操作者)使用sockaddr_in设置端口、IP地址以及地址属性等参数,而不是直接使用sockaddr结构体,因为这个结构体是操作系统内核调用的,对于程序员来说不应该是透明的。所以一般的做法是我们设置好sockaddr_in结构体,然后将其显示转换为sockaddrstruct sockaddr和struct sockaddr_in这两个结...

2020-04-22 17:33:07 749

原创 Unix高级编程《APUE》读书笔记——思维导图形式

终于看完unix高编了,试着利用XMind去记录看到的知识点,避免遗忘,算是自己的一个尝试吧。后面再补上对代码的思考和笔记。...

2020-04-18 14:45:26 253 1

原创 第10章 信号

1. 常见信号还有其他的 见书265页2. signal函数

2020-04-18 11:05:27 151

转载 c编译时的错误:程序中有游离的‘\240’‘\302’‘\XXX 时解决方案

偶尔从网上看到不错的源码,想研究下,不幸编译时遇到“错误:程序中有游离的‘\240’‘\302’”之类的错误,大量的源码不可能再全部重敲一遍,经过一番研究,终于让我找到简单的解决方案,还是本着让后人少走弯路的想法,分享下:首先,编译器提示的\xxx,都是8进制的编码,使用sed做下全文替换,命令如下:sed -i 's/\o240\|\o302//g' filename.cpp...

2020-04-16 09:24:02 203

原创 C++:在堆上创建对象,还是在栈上?

这篇文章来自于一次讨论:http://www.devbean.net/2013/01/qt-study-road-2-model-view/#comment-17532。关于究竟是在堆上还是在栈上创建对象,可能很多初学者感到迷惑。我想可以把这部分内容拿出来详细介绍一下。现在,假设你已经清楚什么是堆,什么是栈。如果需要在堆上创建对象,要么使用new运算符,要么使用malloc系列函数。这点没有异...

2020-04-12 10:58:35 402

原创 算法(2)-基本算法

1. equal如果第二序列元素多,则多余的不考虑2 fill 填充新值fill_n在指定的区间填入新值3 iter_swap将两个迭代器指向的元素对调4 max和min取两个对象的较大较小值min类似5 mismatch比较两个序列,指出两者之间的第一个不匹配点,返回一对迭代器,分别指向两个序列中的不匹配...

2020-04-11 00:57:03 95

原创 STL算法(1)

1.质变算法提供两个版本,一个是in_place(就地),一个是copy(异地),copy版总是以_copy作为函数名称尾词sort没有copy版本有些函数有仿函数版本,会在有仿函数版本的后面加上_if作为尾词2. 算法一般包含在algorithm头文件中,该头文件又包含<stl_numeric.h><stl_algo.h><stl_algobase.h&...

2020-04-10 23:03:47 109

原创 关联式容器之RB-tree红黑树

1.每个节点不是红色就是黑色2.根节点是黑色3.如果节点为红,其子节点必须为黑4.任一节点至NULL(树尾端)的任何路径,所含之黑节点数必须相同这意味着新增节点必须为红、新增节点之父节点必须为黑(主要条件),如果不满足则必须调整颜色并且旋转树形5 总结(当P父亲为红,插入节点X为红时,会产生冲突的解决方法)外侧插入、伯父节点为黑,那么单旋转一次内...

2020-04-10 17:24:45 273

原创 heap & proority_queue

1.heap堆并不归属于STL容器组件2. priority queue优先队列:取出时按优先权最高(数值大小)的元素开始取3. 二叉树的一个节点位于i位置,那么左子节点一定位于2i处,右子节点一定位于2i+1处,其父节点一定位于i/2处。4 最大堆添加新元素的时候,将新节点拿来与父节点进行比较,如果其key大于父节点,那么父子对换位置,如此循环上溯,知道不需要对换或者到达根节点为止。...

2020-04-10 09:55:21 121

转载 CPU 时间片轮转机制 (RR 调度)

时间片轮转机制(RR 调度)时间片轮转法(Round-Robin,RR)主要用于分时系统中的进程调度。为了实现轮转调度,系统把所有就绪进程按先入先出的原则排成一个队列。新来的进程加到就绪队列末尾。每当执行进程调度时,进程调度程序总是选出就绪队列的队首进程,让它在 CPU 上运行一个时间片的时间。时间片是一个小的时间单位,通常为 10~100ms 数量级。当进程用完分给它的时间片后,系统的计时器...

2020-04-06 09:24:27 2686

原创 序列式容器stack与queue

1. 先进后出2. stack允许新增元素,移除元素,但是都只能在最顶端进行操作3. 其实stack是以deque为底部容器完成工作的,所以STL stack往往称为适配器4.5. 因为stack增加、删除操作都是在顶部进行的,所以stack不提供遍历等功能,因此不提供迭代器。6. 除了deque外,list也可以作为stack 的底层容器只需要将模板的第二个参数改为l...

2020-04-02 23:28:07 160

原创 STL源码——序列式容器deque

1.2. 原书deque有错误应该修改为typedef _deque_iterator<T,Ref,Ptr,BufSiz> self不然不知道self到底是什么类型,太坑人了,在这里我还想了好久。3.cur这个指针每次更换缓冲区都要重新更新。4.5. last指向的是一个缓冲区的尾,什么叫尾,就是最后一个元素的下一个位置6. eras...

2020-04-02 23:00:03 128

原创 STL源码——序列式容器list

1. list即链表优点:插入、移除方便缺点:查找不方便,每次都需要从头开始查slist是单向链表我们常说的list表示环状双向链表2. list节点结构3. 将头结点设为尾端的一个空白节点可以将这个空白节点称为Flag节点4.向list插入一个元素其实是插入在迭代器所在位置之前那个位置5. erase原理:将要移...

2020-04-02 15:57:41 139

原创 STL源码——vector

1. 归类2. vector的迭代器vector支持随机存取,所以将其设置为Random Access Iterators 即普通指针类型即可比如ivite的类型是int * 而svite是Shape*3. vector迭代器相关操作4 vector动态增加大小并不是在原空间之后续接新空间,而是重新开辟一块2倍大的空间(原大小为0开辟1),而...

2020-04-02 11:40:06 108

原创 Linux下git clone速度奇慢的有效解决办法(亲测有效)

在网上查询了一些朋友对clone速度慢的看法,主要归纳有:第一点有以下链接可以参考(1)需要Science 上 网,具体怎么操作点击链接https://blog.csdn.net/weixin_34248258/article/details/93164003(2)这个操作就比较骚,简单来说就是将Github上的项目导到码云这个平台,众所周知,下载国内的东西就是快!https:...

2020-04-01 11:56:05 4522

windows内核开发.pdf

windows内核驱动开发,原书的环境是Visual Studio 2005+Windows Vista,所以在编译的时候需要设置相应的SDK

2020-05-14

空空如也

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

TA关注的人

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