linux 高级编程
一块红布1
这个作者很懒,什么都没留下…
展开
-
跨平台Event
#pragma once#ifdef _WIN32#include <Windows.h>#else#include <pthread.h>#endifclass CMyEvent{public: CMyEvent(bool autoReset = true); ~CMyEvent(); void set(); void wait(); bool wait(long milliseconds); void reset();private:.原创 2021-01-18 16:31:57 · 177 阅读 · 0 评论 -
linux 查找内存异常问题
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer")set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fno-omit-frame-pointer")set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address")原创 2020-11-26 15:03:41 · 550 阅读 · 0 评论 -
ubuntu 环境共享内存函数shmget与shmat的使用以及shmid:: Invalid argument错误的原因
用于Linux进程通信共享内存。共享内存函数由shmget、shmat、shmdt、shmctl四个函数组成。shmget函数原型shmget(得到一个共享内存标识符或创建一个共享内存对象)所需头文件#include #include 函数说明得到一个共享内存标识符或创建一个共享内存对象并返回共享内存标转载 2016-03-05 09:43:33 · 3603 阅读 · 0 评论 -
mmap详解举例
mmap 功能描述: mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。munmap执行相反的操作,删除特定地址区域的对象映射。 基于文件的映射,在mmap和munmap执行过程的任何时刻,被映射文件的st_atime可能被更新。如果st_atime字段在前述的情况下没有得到更新,首次对映射区的第转载 2016-01-29 13:58:17 · 563 阅读 · 0 评论 -
TCP长连接与短连接的区别
1. TCP连接当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的经典的三次握手示意图: 经典的四次握手关闭图: 2. TCP短连接我们模拟一下TCP短连接的转载 2016-01-28 10:24:43 · 338 阅读 · 0 评论 -
IO多路复用之poll总结
1、基本知识 poll的机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是poll没有最大文件描述符数量的限制。poll和select同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论这些文件描述符是否就绪,它的开销随着文件描述符数量的增加而线性增大。 2、poll函数转载 2016-01-26 12:52:09 · 307 阅读 · 0 评论 -
linux下SOCKET在connect时遇到Operation now in progress
将 fcntl(fd, F_SETFL, O_NONBLOCK); //非阻塞放到connect之后原创 2016-01-26 11:18:19 · 4088 阅读 · 0 评论 -
C++ IPv4与IPv6的兼容编码
这里不再对IPv6 socket相关编程的基础知识进行讲解,只提供一个IP协议无关的服务端和客户端的代码,仅供参考。服务端代码:[cpp] view plain copy #include #include #include #include #include #include #include #include using转载 2016-12-24 15:01:13 · 525 阅读 · 0 评论