![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 89
虾米0105121
这个作者很懒,什么都没留下…
展开
-
C++ 类型转换
1.static_caststatic_cast 用于内置类型的数据类型还有具有继承关系的指针或者引用2.dynamic_cast结论 dynamic 只能转换具有继承关系的指针或引用,并且只能由子类型转换成基类型3.const_cast 指针 引用或者对象指针增加或者去除变量的 const 属性4.reinterpret_cast 强制类型转换无关的...原创 2020-02-21 23:28:46 · 100 阅读 · 0 评论 -
本地套接字
本地套接字: IPC: pipe、fifo、mmap、信号、本地套接字(domain)---cs 模型 对比网络编程 TCP C/S模型 注意以下几点: 1.int socket(int domain,int type,int protocol); 参数 domain:AF_INET-->AF_UNIX/AF_LOCAL...原创 2020-02-20 21:44:15 · 909 阅读 · 1 评论 -
udp通信
TCP UDP各自优缺点: TCP: 面向连接的,可靠数据包传输。对于不稳定的网络层,采取完全弥补的通信方式。丢包重传。 优点: 稳定 数据流量稳定、速度稳定、顺序 缺点: 传输速度慢、效率低、开销大 ...原创 2020-02-20 21:21:01 · 174 阅读 · 0 评论 -
线程池
描述线程池相关信息struct threadpool_t{ pthread_mutex_t lock; 用于锁住本结构体 pthread_mutex_t thread_counter 记录忙状态线程个数的 锁 -- busy_thr_num pthread_cond_t queue_not_full 当任务队列满时,添加任务的线程阻...原创 2020-02-20 18:00:54 · 140 阅读 · 0 评论 -
IO 多路转接 epoll
read 函数返回值 >0 :实际读到的字节数 =0 :socket中,表示对端关闭 close() -1 : 如果errno = EINTR 被异常中断。需要重启。 如果errno =EAGIN 或 EWOULDBLOCK 以非阻塞的方式读数据,但是没有数据。需要再次读 如果errno = ECONNRESET 说明...原创 2020-02-19 21:38:07 · 159 阅读 · 0 评论 -
yum & ctags
yum:软件包管理工具查看软件包:yum listlrzsz yum list|grep lrzsz安装软件包:yum installlrzsz.x86_64 yum install lrzsz.x86_64 yum install lrzszyum install gccyum list installed 查看已经安装的移除软件包:yum removelrz...原创 2020-02-19 21:37:42 · 407 阅读 · 0 评论 -
IO 多路转接 poll
poll: int poll(struct pollfd* fds,nfds_t nfds,int timeout) fds: 监听的文件描述符 【数组】 struct pollfd { int fd 待监听的文件描述符 short...原创 2020-02-18 21:42:46 · 111 阅读 · 0 评论 -
IO 多路转接 select
TCP状态时序图: 1.主动发起连接请求端: CLOSE --发送SYN--SEND_SYN --接受 ACK、SYN --SEND_SYN--发送 ACK --ESTABLISHED(数据通信状态) 2.主动关闭连接请求端; ESTABLISHED(数据通信状态) --发送FIN --FIN_WAIT_1 --接受 ACK --FIN_WAIT_2(半关闭) ...原创 2020-02-18 21:09:10 · 111 阅读 · 0 评论 -
tcp状态装换
TCP状态时序图: 1.主动发起连接请求端: CLOSE --发送SYN--SEND_SYN --接受 ACK、SYN --SEND_SYN--发送 ACK --ESTABLISHED(数据通信状态) 2.主动关闭连接请求端; ESTABLISHED(数据通信状态) --发送FIN --FIN_WAIT_1 --接受 ACK --FIN_WAIT_2(半关闭)...原创 2020-02-18 19:58:21 · 212 阅读 · 0 评论 -
套接字编程 (多进程多线程)
三次握手: 主动发起连接请求端,发送SYN标志位,请求建立连接。携带序号、数据字节数(0)、滑动窗口大小。 被动接受连接请求端,回复ACK标志位,同时携带 SYN 请求标志位。 携带序号、确认序号、数据字节函数(0)、滑动窗口大小 主动大气连接请求端,发送 ACK 标志位,应答服务器连接请求。携带确认序号。四次挥手: 主动关闭连接请求端,发送 FIN标...原创 2020-02-15 00:14:58 · 1056 阅读 · 0 评论 -
网络基础&套接字编程 一
协议: 一组规则分层模型结构: OSI 七层模型 : 物、数、网、传、会、表、应 TCP/IP 4层模型:网(链路层/网络接口层)、网、传、应 应用层:http、ftp、nfd、ssh、telnet 传输层:TCP/UDP 网络层:IP、ICMP、IGMP 链路层:以太网帧协议、ARPc/s...原创 2020-02-14 23:00:43 · 193 阅读 · 0 评论 -
linux 线程同步
线程同步: 协同步调,对公共区域的数据排队访问。防止数据混乱。产生与时间有关的错误。 一个线程发出某一功能调用时,在没有得到结果之前,该调用不返回。同时其他线程为保证数据一致性,不能调用该功能。 列子:银行存款5000.柜台存折:取3000; 提款机,卡 :取 3000 。剩余:2000锁的使用: 建议锁 ! 对公共数据进...原创 2020-02-14 00:11:59 · 104 阅读 · 0 评论 -
linux 线程
线程概念: 进程:有独立的 进程地址空间。 有独立的pcb。 分配资源最小单位 线程:有独立的 pcb。 没有独立的进程地址空间 执行最小单位 ps-Lf 进程id --》线程号 LWP -->CPU 执行的最小单位线程共享资源: 1.文件描述符 2.每种信号的处理方式 3.当前工作目录 4....原创 2020-02-13 20:12:33 · 276 阅读 · 0 评论 -
守护进程及会话
创建一个会话:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>int main(){ pid_t pid; if((pid=fork())<0){ perror("fork error"); exit(1);...原创 2020-02-12 22:58:10 · 193 阅读 · 0 评论 -
linux 信号相关函数 二
信号集操作函数: sigset_t set ; 自定义信号集 int sigemptyset(sigset_t* set); 清空信号集 int sigfillset(sigset_t* set); 全部置一 int sigaddset(sigset_t* set,int signum); 讲一个信号添加到集合中 int sigd...原创 2020-02-12 20:55:10 · 244 阅读 · 0 评论 -
linux 信号相关函数 一
信号共性: 简单、不能携带大量信息、满足条件才发送信号的特质: 信号是软件层面的 中断。一旦信号产生,无论程序执行到什么位置,必须停止运行,处理信号,处理结束,再继续执行后续指令。 所有信号的产生及处理都是 由 内核完成的。信号相关概念: 产生信号: 1.按键产生 如:ctrl+c 2.系统调用产生 如:kil...原创 2020-02-12 17:36:22 · 171 阅读 · 0 评论 -
linux文件 IO
系统调用:由操作系统实现并提供给外部应用程序的编程接口,是应用程序同系统之间数据交换的桥梁open 函数:int open (char* pathname,int flags) #include<unistd.h> 参数: pathname :欲打开的文件路径名 flags :文件的打开方式 : O_RDONLY | O_WRONLY | O_RDWR O_CRE...原创 2020-02-10 19:59:18 · 184 阅读 · 0 评论 -
进程间通信
什么是IPC 进程间通信 InterProcess Communication进程间通信方式 管道 -- 简单 信号 -- 系统开销小 共享映射区 -- (有无血缘关系进程间通信都可以) 本地套接字-- 稳定管道(匿名) 管道的概念: ...原创 2020-02-12 00:48:55 · 127 阅读 · 0 评论 -
linux 进程
进程: 程序:死的。只占磁盘空间 --剧本 进程:活得。运行起来的程序。 占用内存、cup等系统资源 ---戏虚拟内存物理内存映射PCB进程控制块:struct task struct 结构体 进程id 文件描述符表 进程状态: 初始态 、就绪态、 运行太、挂起态、终止态 进程工作目录位置 umask 掩码...原创 2020-02-11 22:31:54 · 110 阅读 · 0 评论 -
linux 目录相关函数
目录操作函数: DIR* opendir(char* name) int closedir(DIR* dp) struct dirent* readdir(DIR* dp); struct dirent{ inode char dname[256] }递归遍历目录:l...原创 2020-02-11 01:05:54 · 176 阅读 · 0 评论 -
gdb 调试
gdb 调试工具: 大前提 :程序是你自己写的。基础指令:-g :使用改参数编译可执行文件,得到调试表。gdb ./a.outlist: list 1 列出源码、 根据源码指定行号 设置断点、b: b20 在20行设置断点、run/r : 运行程序 n/next :下一条指令(越过函数)s/step:下一条指令(会进入函数)p/print: p i 查看变量的值...原创 2020-02-09 22:51:08 · 114 阅读 · 0 评论 -
静态库动态库制作及使用
静态库&动态库:静态库:对空间要求较低,而时间要求较高的核心程序中动态库:对时间要求较低 ,对空间要求较高静态库制作及使用步骤:1. 将.c生成 .o 文件 gcc -c add.c -o add.o2.使用 ar 工具制作静态库 ar rcs lib库名.a add.o sub.o div1.o3.编译静态库到可执行文件中: gcc test.c (库路...原创 2020-02-09 22:43:14 · 148 阅读 · 0 评论 -
linux基础知识
终端:一系列输入输出设备的总称linux 中 所见皆文件根目录下:bin:存放二进制可执行文件boot:存放开机启动程序dev:存放设备文件etc:用户信息系统配合文件home:存放用户lib:库文件usr:用户资源管理目录root:管理员宿主目录(家目录)linux系统文件类型普通文件:-目录文件:d字符设备文件:c块设备文件:b软连接:l管道文件:p套接字:...原创 2020-02-09 22:39:58 · 131 阅读 · 1 评论 -
g++升级到7.3版本
root用户下1.yum install centos-release-scl -y2.yum install devtoolset-7 -y以下命令添加到bashrcsource /opt/rh/devtoolset-7/enable怎么添加?1.vim ~/.bashrc末尾加上source /opt/rh/devtoolset-7/enable2.source ~/.bash...原创 2019-09-05 13:51:41 · 2893 阅读 · 0 评论 -
linux常用工具
常见的代码编辑器NOTEPAD++NOTEPAD++是一款免费又优秀的文本编辑器,支持在 MS Windows 环境下运行的多种编程语言。NOTEPAD++支持超过 50 种编程、脚本和标记语言的语法高亮显示和代码折叠,能让用户迅速减小或扩大代码段以便查阅整个文档。用户也可以手动设置当前语言,覆盖默认语言。该程序还支持自动完成某些编程语言的 API 子集。VIM 是一个可高度自由配置的...原创 2019-07-06 23:01:05 · 200 阅读 · 0 评论 -
linux基础命令
目录命令:ls 浏览目录内容-l 查看文件的详细信息(课后调研信息的含义)-a 查看所有文件包括隐藏文件linux下以.开头的文件是默认不显示的pwd 查看当前所在路径/home/dev 绝对路径—基于根目录的路径表达方式…/dev/ 相对路径—相对于当前所在路径的表达方式在每一个目录下都会有两个目录. 目录自身… 自身的...原创 2019-07-09 23:06:54 · 110 阅读 · 0 评论