摘要: 1. 介绍 #include <unistd.h> pid_t setsid(void); 创建新的会话,并设进程组ID为新的会话ID 2. linux中各种进程组控制 单个进程使用进程pid控制; 如果想同时控制多个进程,需要进程组,进程组中的进程都是由一个进程fork()出来的; 进程组可以分前 阅读全文
posted @ 2021-09-04 10:04 suntus 阅读(293) 评论(0) 推荐(0) 编辑
摘要: #include <unistd.h> int dup(int oldfd); int dup2(int oldfd, int newfd); #define _GNU_SOURCE /* See feature_test_macros(7) */ #include <fcntl.h> /* Obt 阅读全文
posted @ 2021-09-04 09:07 suntus 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 解决什么问题 进程或线程同步 如何解决? 一个整数n,不允许小于0,小于0就会阻塞程序运行,两个操作来控制: sem_post(3) 每次+1, sem_wait(3) 每次-1。比如初始化时候n=0, 一个线程执行sem_wait(),发现n是0,如果-1,就会小于0,但信号量不允许小于0,就等着 阅读全文
posted @ 2021-09-04 08:37 suntus 阅读(251) 评论(0) 推荐(0) 编辑
摘要: #include <stdio.h> extern FILE *stdin; extern FILE *stdout; extern FILE *stderr; 通常linux程序启动后都会有这3个打开的输入输出流,叫标准I/O流。 对应的文件描述符为STDIN_FILENO(0),STDOUT_F 阅读全文
posted @ 2021-08-30 22:48 suntus 阅读(1028) 评论(0) 推荐(0) 编辑
摘要: 1. 目标 让程序脱离控制终端,不从终端接收信号,防止被外部信号打扰。 2. 标准过程 fork()出子进程, 父进程退出 setsid()新建会话组,子进程脱离控制终端 关闭标准输入输出 标准过程就上边3步,还可以umask(0), chdir() 或者再fork()一次,得到孙子进程,不过不是必 阅读全文
posted @ 2021-08-30 22:47 suntus 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 1. string转map 主要用到 std::getline() 和 std::ws #include <map> #include <string> #include <sstream> #include <iostream> std::map<std::string, std::string> 阅读全文
posted @ 2021-08-28 22:20 suntus 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 1. CheckCxxCompilerFlag 模块 检查cxx编译器是否支持某个flag include(CheckCxxCompilerFlag) CHECK_CXX_COMPILER_FLAG("-std=c++1" COMPILER_SUPPORTS_CXX11) if (COMPILER_ 阅读全文
posted @ 2021-08-16 11:19 suntus 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 1. 构造 空vector: vector(): 空vector n个元素: vector(int size): n个元素位置 vector(int size, const T &t): n个元素,均初始化为t 复制构造: vector(const vector &): 复制构造 vector(be 阅读全文
posted @ 2021-08-01 17:13 suntus 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 1. 定义 #include <set> template< class Key, class Compare = std::less<Key>, class Allocator = std::allocator<Key> > class set; 2. 初始化 默认构造,空set 范围构造,使用另 阅读全文
posted @ 2021-07-26 23:11 suntus 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 使用scl工具进行切换,效果是想用哪个版本就可以切哪个版本,方便调试。 安装 yum install scl-utils yum install centos-release-scl 查看都有啥包可选 yum list all --enablerepo='centos-sclo-rh' 安装不同版本 阅读全文
posted @ 2021-07-18 08:11 suntus 阅读(2226) 评论(0) 推荐(0) 编辑