摘要: [toc] log4cpp 使用完全手册 一、log4cpp概述 Log4cpp是一个开源的C++类库,它提供了C++程序中使用日志和跟踪调试的功能,它的优点如下: 提供应用程序运行上下文,方便跟踪调试; 可扩展的、多种方式记录日志,包括命令行、文件、回卷文件、内存、syslog服务器、Win事件日 阅读全文
posted @ 2019-05-19 17:48 Mered1th 阅读(1779) 评论(0) 推荐(0) 编辑
摘要: [TOC] Overloaded operators Restrictions Only existing operators can be overloaded. Operators must be overloaded on a class or enumeration type Overloa 阅读全文
posted @ 2019-05-18 21:50 Mered1th 阅读(279) 评论(0) 推荐(0) 编辑
摘要: sendfile和splice零拷贝 sendfile: ​ 原始:首先将文件读到内核态的文件描述符中,然后再拷贝给用户态buf,再重新拷贝给内核态中网络缓冲区发给客户端。拷贝2次 ​ sendfile是一个接口能直接让文件从内核态的文件描述符送到网络缓冲区从而实现零拷贝 ​ 函数原型: ​ out 阅读全文
posted @ 2019-05-13 22:18 Mered1th 阅读(1378) 评论(0) 推荐(0) 编辑
摘要: 进程池 [TOC] 父进程的实现流程 1、定义数据结构pChild,申请子进程数目的结构体空间 2、通过循环,socketpair创建全双工管道,创建子进程,将子进程pid,管道对端,是否忙碌等信息存储 3、socket,bind,listen,对应的端口处于监听状态 netstat 4、epoll 阅读全文
posted @ 2019-05-13 21:46 Mered1th 阅读(1013) 评论(0) 推荐(0) 编辑
摘要: Linux网络编程——多路复用之epoll ​ epoll是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率,因为它会复用文件描述符集合来传递结果而不用迫使开发者每次等待事件之前都必须重新准备要被侦听的文件描述符集合 阅读全文
posted @ 2019-05-02 22:22 Mered1th 阅读(524) 评论(0) 推荐(0) 编辑
摘要: TCP协议流程图、TCP建立即时聊天 TCP即时聊天升级:服务器在客户端断开后不断开,客户端可以多次重连服务器进行即时聊天 UDP协议流程图、UDP建立即时连接 如果在已经处于 ESTABLISHED状态下的socket(一般由端口号和标志符区分)需调用closesocket(一般不会立即关闭而经历 阅读全文
posted @ 2019-05-02 22:16 Mered1th 阅读(386) 评论(0) 推荐(0) 编辑
摘要: 概要 该贴记录我学习Linux的过程,因为水平有限,如有有误之处,希望大家不吝指教,谢谢! 博客园:http://www.cnblogs.com/Mered1th/ Tags: C / C++ / Linux Linux系统编程 Linux系统编程——VIM编辑器常用命令 Linux系统编程——静态 阅读全文
posted @ 2019-05-02 21:58 Mered1th 阅读(361) 评论(0) 推荐(0) 编辑
摘要:  Linux系统编程——线程(2) 前情提要: "Linux系统编程——线程(1)" [TOC] 同步概念 ​ 所谓同步,即同时起步,协调一致。不同的对象,对“同步”的理解方式略有不同。如,设备同步,是指在两个设备之间规定一个共同的时间参考;数据库同步,是指让两个或多个数据库内容保持一致,或者按需 阅读全文
posted @ 2019-05-02 21:54 Mered1th 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 前情提要: "Linux用户级线程和内核级线程区别" [TOC] 线程概要 Linux内核线程实现原理 类Unix系统中,早期是没有“线程”概念的,80年代才引入,借助进程机制实现出了线程的概念。因此在这类系统中,进程和线程关系密切。 1. 轻量级进程(light weight process),也 阅读全文
posted @ 2019-05-01 23:49 Mered1th 阅读(288) 评论(0) 推荐(0) 编辑
摘要:  valgrind内存检测泄漏工具使用 1、为什么要使用 Valgrind ​ 内存泄漏的产生:内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放 或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果! ​ Valgrind使用的目的:在人为 阅读全文
posted @ 2019-05-01 14:46 Mered1th 阅读(2109) 评论(0) 推荐(0) 编辑