- 博客(10)
- 问答 (3)
- 收藏
- 关注
原创 虚拟内存详解
先直接上图吧!这个为32位CPU虚拟内存划分图。内存分配在涉及到内存分配时,我们一般都要考虑到两种内存分配方式,一种是动态内存分配,另一种是静态内存分配。静态内存分配:长度是预先定义好的,内存空间在程序编译和连接的时候就分配好了,在整个程序中也是固定不变的,如数组。动态内存分配:动态分配则发生在程序调入和执行的时候,按所需分配内存,如链表。静态内存分配比动态内存分配的速率要高不少,但是静态内存分配的方式有可能会有内存剩余也就是有可能会有我们不使用的内存空间,这样就造成了内存的浪费。
2021-04-30 15:31:35 544
原创 TCP的socket详解
首先要看懂TCP的传输结构,至于那理想七层模型与实际的四层模型就不先说了,后面再补上。我是提倡先会用,在会用的基础上去理解。可以理解为TCP之间的数据传输都是依赖各自的socket,socket就充当传输的中介吧。而每个socket都对应两个缓冲区,一个输入缓冲区,一个输出缓冲区。怎么理解呢,且看下面的代码例子。#include <iostream>#include <sys/types.h>#include <sys/socket.h&g...
2021-04-22 11:13:54 13596 3
原创 C++字符串类型
C++和C不同,C++有专门的字符串类型,即std::string那字符串在std::string是怎么存储的呢?可以简洁地理解为,是一个const char*指针和一个字符串size组成。该指针指向的是字符串的起始地址size则是字符串的大小(不包括‘\0’)#include <iostream>int main(){ std::string str ="hello world"; std::cout << sizeof(str) <
2021-04-20 13:33:02 1971
转载 std::function 和 std::bind
std::function 仿函数对象std::function 用来声明函数对象的,换句话说,就和函数指针、Lambda表达式、函数名是一个东西 。#include <iostream>#include <functional>// 传统C函数int c_function(int a, int b){ return a + b;}int main(int argc, char** argv){ // 万能可调用对象类型 std.
2021-03-13 17:02:58 2964
原创 C++线程创建
直接贴代码#include <iostream>#include <thread> #include <unistd.h>void fun(int a){ while(1){ std::cout << "I am fun ,传参为:" << a <<std::endl; sleep(1); }}void fun2(){ while(1) { std::cout
2021-03-13 15:48:47 171
转载 函数指针
函数指针作用:1. 获取函数的地址2. 声明一个函数指针,即一个函数3.使用函数指针来调用函数声明函数指针声明指针时,必须指定指针指向的数据类型,同样,声明指向函数的指针时,必须指定指针指向的函数类型,这意味着声明应当指定函数的返回类型以及函数的参数列表。double fun1(int); // 方法1 声明一个函数原型double (*fun2)(int); // 方法2 声明一个返回值为double,参数为int的函数指针 ......double fu
2021-03-13 10:47:59 113
原创 unique_ptr 和 shared_ptr
首先unique_ptr 和 shared_ptr 两个都是智能指针,意味着它们会自动释放它们无法再引用该对象时指向的对象 。unique_ptr使用unique_ptr时,最多只能让unique_ptr指向一个资源 。因为unique_ptr任何资源只能有一个 。并且unique_ptr不能有多个副本unique_ptr,所以任何复制a的尝试unique_ptr都会导致编译时错误 。当它unique_ptr被销毁时,资源会自动回收 。unique_ptr<T&...
2021-03-12 16:54:47 1241
原创 cppzmq发布订阅模式
1. 首先需要下载cppzmq的库github:https://github.com/zeromq/cppzmq2. 将zmq.hpp 和 zmq_addon.hpp 两个文件放入到自己的工程3. 写demo/*server.cpp*/#include <iostream>#include <unistd.h>#include "zmq.hpp"#include "zmq_addon.hpp"int main(){ zmq::context_.
2021-03-08 14:02:33 2155 1
原创 System V信号量
System V信号量Linux命令ipcs -s //查看共享内存ipcrm -s semid号 //删除共享内存semget#include <sys/sem.h>#include <sys/ipc.h>#include <sys/types.h>int semget(key_t key, int nsems, int semflg); //创建或打开信号量参数 key:指信号量的key,
2021-03-02 17:18:40 128
原创 Linux 共享内存
共享内存Linux命令:ipcs -m //查看存在的共享内存信息ipcrm -m (shmid) //删除对应shmid的共享内存shmget#include <sys/ipc.h>#include <sys/shm.h>int shmget(key_t key,int size,int shmflg); //创建共享内存 参数key: 为共享内存的key,唯一标识系统中一块共享内存,为in..
2021-03-01 18:15:56 271
空空如也
ubuntu20.04编译android11问题
2021-09-13
linux进程虚拟内存
2021-04-30
进程间的读写锁接口pthread_rwlock_wrlock
2021-03-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人