会员
周边
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
明明1109
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
6
7
8
9
10
11
12
13
14
···
25
下一页
2022年6月16日
C++ 单例模式浅析
摘要: 单例模式的惯用实现 一直以来,我在C++中是这样实现单例模式的 class Singleton { public: static Singleton& GetInstance() { static Singleton instance; return instance; } private: Sin
阅读全文
posted @ 2022-06-16 23:47 明明1109
阅读(960)
评论(0)
推荐(0)
2022年6月13日
C++11小结:使用智能指针的坑
摘要: shared_ptr 不能访问一个空智能指针所接管对象的数据成员或函数成员 当不能确定一个智能指针释放已经释放接管的内存时,需要对其进行空指针判断。因为决不能访问一个空智能指针对象的成员(数据成员或函数成员),否则可能会造成程序崩溃。 如果程序异常退出码为139,则有可能是因为访问空智能指针成员。
阅读全文
posted @ 2022-06-13 11:21 明明1109
阅读(1782)
评论(0)
推荐(0)
2022年6月12日
socket 问题: 连续bind/listen 同一个socket fd
摘要: 找一个进程可用端口号 如果我们想尝试哪个端口号可用,然后监听该端口,该如何处理?比如FTP协议里面有这样一个需求,PASV模式下,Server需要监听本地数据端口,通常是找一个随机端口号进行监听。而且每收到一个客户PASV命令后,就需要提供一个不同的数据端口,这也就是说,不能两个连接同时使用同一个数
阅读全文
posted @ 2022-06-12 11:22 明明1109
阅读(1588)
评论(0)
推荐(0)
2022年6月6日
Linux进程调度
摘要: 背景 进程主要分为两部分: 1)进程管理,见Linux进程管理。 2)进程调度,见Linux进程调度。 进程调度程序,也称调度程序,是内核的组成部分,负责选择下一个要运行的进程。 意义 只有合理的调度,系统资源才能最大限度地发挥作用,多进程才会有并发执行效果。 [ ] 调度策略 调度程序原则 最大限
阅读全文
posted @ 2022-06-06 16:52 明明1109
阅读(1824)
评论(0)
推荐(0)
2022年6月5日
Linux进程管理
摘要: 背景 进程主要分为两部分: 1)进程管理,见Linux进程管理。 2)进程调度,见Linux进程调度。 这部分主要讲进程管理。 进程和文件是Unix OS的2个最基本抽象。一个进程就是处于执行期的程序。 进程包括:一段可执行程序代码(代码的text section),打开的文件、挂起的信号、内核内部
阅读全文
posted @ 2022-06-05 23:17 明明1109
阅读(632)
评论(0)
推荐(0)
2022年6月4日
Linux中断下半部及推后执行的工作
摘要: 背景 Linux中断上半部,参见Linux中断和中断处理程序 。 Linux中断下半部,参见Linux中断下半部及推后执行的工作。 这部分讲中断下半部和推后执行的工作。 中断处理程序(中断上半部)的局限: 以异步方式执行,并且有可能打断其他重要代码(包括其他中断处理程序)的执行。因此,中断处理程序应
阅读全文
posted @ 2022-06-04 20:59 明明1109
阅读(774)
评论(0)
推荐(0)
2022年6月1日
LeetCode> 71. 简化路径
摘要: 最近在做与Unix/Linux的简化路径(simplify path)或称清理路径(clean path)有关的工作,刚刚好碰到这类问题,记录一下。 题目 地址:LeetCode 71. 简化路径 题目描述 给你一个字符串 path ,表示指向某一文件或目录的 Unix 风格 绝对路径 (以 '/'
阅读全文
posted @ 2022-06-01 19:44 明明1109
阅读(232)
评论(0)
推荐(0)
2022年5月31日
Linux I/O复用技术:select, poll, epoll使用区别
摘要: I/O复用简介 传统的编程模型中,要确定某个文件描述符是否发生关心的事件,需要对其进行轮询。一旦要监听的文件描述符数量众多,可能会导致效率很低。 I/O 复用技术能有效减少需要轮询的文件描述符数量,将其缩减至1个,即I/O复用的系统调用本身,同时,程序也能监听多个文件描述符。这对提高程序性能很重要。
阅读全文
posted @ 2022-05-31 15:45 明明1109
阅读(1098)
评论(0)
推荐(0)
2022年5月29日
C++ 编译、调试错误总结
摘要: 目录C/C++编程1. extra qualification on member2. no matching function for call to3. undefined reference to ftp::Filesystem::cleanPathNative4. cannot conver
阅读全文
posted @ 2022-05-29 08:59 明明1109
阅读(5719)
评论(0)
推荐(0)
2022年5月28日
C++11 chrono库处理日期和时间
摘要: C++11提供chrono库,可以很方便地用于处理日期和时间。 chrono库主要包含3种类型:时间间隔duration、时钟clocks、时间点time point。 duration:记录时间长度 duration 表示一段时间间隔,用来记录时间长度,可以表示几秒、几分钟,或几个小时的时间间隔。
阅读全文
posted @ 2022-05-28 16:51 明明1109
阅读(4978)
评论(0)
推荐(0)
2022年5月22日
CMake 导出库的头文件GenerateExportHeader
摘要: generate_export_header简介 generate_export_header()用于为library export宏定义。生成一个适用于预处理的文件,包含用在library中的EXPORT宏定义。 适用场景:假设我们用了一个自定义library,为避免跟用到的其他库重名,但又不得不
阅读全文
posted @ 2022-05-22 11:16 明明1109
阅读(5386)
评论(0)
推荐(0)
CMake 添加头文件搜索路径 include_directories, target_include_directories
摘要: 目录include_directoriestarget_include_directoriesAFTER或BEFOREINTERFACE,PUBLIC,PRIVATESYSTEMinclude_directories与target_include_directories区别参考 include_di
阅读全文
posted @ 2022-05-22 10:06 明明1109
阅读(40941)
评论(0)
推荐(2)
CMake 调用环境变量
摘要: CMake调用环境变量 查看环境变量 使用$ENV{NAME}指令,例如, message(STATUS "HOME dir: $ENV{HOME}") 设置环境变量 使用set函数 + ENV指令 set(ENV{变量名} 值) 注意: 1)读环境变量时,需要加上$;写环境变量时,不需要加$。 2
阅读全文
posted @ 2022-05-22 00:59 明明1109
阅读(5818)
评论(0)
推荐(0)
2022年5月21日
CMake configure_file拷贝文件
摘要: configure_file简介 configure_file 将文件复制到另一个位置并修改其内容。该命令将<input>文件复制到<output>文件,并根据指定规则对其内容进行转换。 configure_file(<input> <output> [NO_SOURCE_PERMISSIONS |
阅读全文
posted @ 2022-05-21 22:50 明明1109
阅读(1228)
评论(0)
推荐(0)
git submodule 使用
摘要: 目录git submodule应用通过git submodule为模块A引用子模块Bgit clone包含子模块B的代码仓库Agit submodule工作原理拉取子模块代码添加子模块删除子模块实战:为项目添加依赖库non-boost asio环境asio依赖包使用git submodule机制为项
阅读全文
posted @ 2022-05-21 22:37 明明1109
阅读(3546)
评论(0)
推荐(0)
2022年5月14日
boost::any浅析
摘要: boost::any简介 C语言中有void*指针用于存放、传递任意类型数据,C++中呢? boost库就提供了这样一个类:boost::any,一个很短小的类,主要作用是定义一个变量存放任意类型的数据。 boost::any用法 可以在存储的时候,将要存储的对象类型转换为boostany类型,而要
阅读全文
posted @ 2022-05-14 22:02 明明1109
阅读(1475)
评论(0)
推荐(0)
2022年5月13日
SGI STL双端队列deque
摘要: deque vs vector vector是单向开口的连续线性空间,适合在尾端插入、删除元素,O(1);deque是双向开口的连续线性空间,适合在头尾两端分别进行元素的插入和删除操作,O(1)。 vector也可以在头尾插入、删除元素,不过在头部操作的效率非常低,O(n)。 可以指定,deque和
阅读全文
posted @ 2022-05-13 10:20 明明1109
阅读(363)
评论(0)
推荐(0)
2022年5月9日
算法笔记:并查集
摘要: 并查集原理 如果某个部落过于庞大,则部落成员见面可能不认识。已知某个部落成员关系图,任意给出其中两个人,判断是否有亲戚关系。规定:1)若x、y是亲戚,y和z是亲戚,则x和z也是亲戚;2)若x、y是亲戚,则x的亲戚也是y的亲戚,y的亲戚也是x的亲戚。 如何才能快速判断2个人是否有亲戚关系? 以上第1)
阅读全文
posted @ 2022-05-09 23:46 明明1109
阅读(228)
评论(0)
推荐(0)
SGI STL优先队列priority_queue
摘要: priority_queue简介 跟普通queue不同的是,priority_queue拥有权值的概念,允许加入新元素、移除旧元素、查看元素值等。priority_queue本身也是一个queue,因此只允许在尾部加入元素,头部取出元素,除此外无法从别的位置存取元素。 普通queue是按先进先出的规
阅读全文
posted @ 2022-05-09 14:36 明明1109
阅读(119)
评论(0)
推荐(0)
SGI STL堆heap
摘要: heap简介 heap不是STL容器组件,而是为了辅助priority queue(优先队列)。priority queue允许用户以任何次序将任何元素推入容器内,但取出时一定是从优先权最高(即数值最大)的元素开始取。二叉最大堆(binary max heap)正具有这样的特性,适合作为priori
阅读全文
posted @ 2022-05-09 14:33 明明1109
阅读(174)
评论(0)
推荐(0)
上一页
1
···
6
7
8
9
10
11
12
13
14
···
25
下一页
公告