随笔分类 -  linux开发

摘要:1. 基本概念 1.1. 4表5链 防火墙由很多规则组成,每个规则匹配产生不同的动作,这些规则按功能共划分出4个表,一个表由多个相同功能的规则组成: raw 控制NAT表中连接跟踪机制的启用状况 mangle 修改数据 filter 过滤 nat 地址转换 在数据经过的各个路径上,设置了5个关键卡点 阅读全文
posted @ 2022-06-12 23:14 suntus 阅读(207) 评论(0) 推荐(0) 编辑
摘要:1. CLOSE_WAIT是什么 TCP关闭时 主动关闭: 发FIN(FIN_WAIT_1) --> 收ACK(FIN_WAIT_2) --> 收FIN(TIME_WAIT) --> 发ACK, TIME_WAIT会持续 2*MSL(1-4分钟) 被动关闭: 收FIN(CLOSE_WAIT) --> 阅读全文
posted @ 2021-10-26 23:22 suntus 阅读(354) 评论(0) 推荐(0) 编辑
摘要:1. 介绍 #include <unistd.h> pid_t setsid(void); 创建新的会话,并设进程组ID为新的会话ID 2. linux中各种进程组控制 单个进程使用进程pid控制; 如果想同时控制多个进程,需要进程组,进程组中的进程都是由一个进程fork()出来的; 进程组可以分前 阅读全文
posted @ 2021-09-04 10:04 suntus 阅读(308) 评论(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 阅读(253) 评论(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 阅读(1037) 评论(0) 推荐(0) 编辑
摘要:1. 目标 让程序脱离控制终端,不从终端接收信号,防止被外部信号打扰。 2. 标准过程 fork()出子进程, 父进程退出 setsid()新建会话组,子进程脱离控制终端 关闭标准输入输出 标准过程就上边3步,还可以umask(0), chdir() 或者再fork()一次,得到孙子进程,不过不是必 阅读全文
posted @ 2021-08-30 22:47 suntus 阅读(74) 评论(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 阅读(43) 评论(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 阅读(2333) 评论(0) 推荐(0) 编辑
摘要:#include <sys/types.h> /* See NOTES */ #include <sys/socket.h> int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen); #define _GNU_SOURCE 阅读全文
posted @ 2021-06-22 23:15 suntus 阅读(35) 评论(0) 推荐(0) 编辑
摘要:1. 简介 都是IO多路复用。 可以在一个进程或线程中同时管理多个IO的事件,在相当于在一个点去等待这些事件,收集到事件后,再分别处理。 2. 基本API 2.1. select // 1. 操作fd集 void FD_CLR(int fd, fd_set *set); int FD_ISSET(i 阅读全文
posted @ 2021-06-20 23:51 suntus 阅读(46) 评论(0) 推荐(0) 编辑
摘要:IO事件通知机制。 1. 简介 跟poll(2)类似,可以同时监测多个文件描述符上的事件。可以使用水平触发和边沿触发两种模式,可以同时监听大量fd,而且性能很好。 epoll_create(2)创建一个epoll实例,并返回一个fd用于控制该实例。 epoll_ctl(2)添加感兴趣的fd到epol 阅读全文
posted @ 2021-06-20 23:06 suntus 阅读(54) 评论(0) 推荐(0) 编辑
摘要:IO多路复用。 1. 定义 #include <poll.h> struct pollfd { int fd; /* file descriptor */ short events; /* requested events */ short revents; /* returned events * 阅读全文
posted @ 2021-06-20 21:59 suntus 阅读(100) 评论(0) 推荐(0) 编辑
摘要:大部分都是参考manual 1. 整体介绍 1.1. 信号默认处理动作 Term: 中止进程 Ign: 忽略信号 Core: 中止进程并转储文件 Stop: 暂停进程 Cont: 继续当前暂停的进程 除此之外还可以自定义处理函数,处理函数一般是在当前进程栈,也可以用sigaltstack(2)设置信 阅读全文
posted @ 2021-06-20 21:45 suntus 阅读(174) 评论(0) 推荐(0) 编辑
摘要:1. 定义 同步IO多路复用。 select(2) 和 pselect(2) 的区别: 时间精度不同,select(2) 用 struct timeval,精确到us,pselect(2) 用 struct timespec ,精确到ns select(2) 会更新 timeout ,提示还剩下多长 阅读全文
posted @ 2021-06-19 17:56 suntus 阅读(51) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示