
Linux
astronautli
这个作者很懒,什么都没留下…
展开
-
Docker 1.二进制安装以及基本概念
Docker 1.二进制安装以及基本概念0.Docker安装1. Docker的基本概念0.Docker安装依赖:64位操作系统Linux内核3.10以上iptables v1.4以上git v1.7以上XZ Utils v4.9以上(yum search xz之后安装所有相关文件)安装启动步骤下载解压二进制文件解压进入解压文件,将其中的二进制文件copy到/usr/binsudo dockerd & 启动docker服务普通用户下运行docker报权限原创 2020-12-19 13:04:02 · 323 阅读 · 1 评论 -
Linux定时器
Linux定时器1. 睡眠函数Linux下有两个睡眠函数,#include <unistd.h>unsigned int sleep(unsigned int seconds);int usleep(useconds_t usec);unsigned int alarm(unsigned int seconds);1.seconds秒后触发一个SIGALRM信号,具体操作需要在信号处理函数中完成2.seconds设置为0,则所有正在等待的alarm全部被取消3.alarm原创 2020-10-26 13:54:08 · 383 阅读 · 0 评论 -
Linux线程总结
Linux线程总结一、线程的基本概念1.线程概念2.线程和进程的关系二、线程的创建和退出、等待0.线程相关的基本数据类型1. 线程的创建2.线程的退出3.线程的等待三、线程的取消和资源清理1.线程的取消2.线程的资源清理四、线程同步1.互斥量 pthread_mutex_t2. 条件变量五、线程的属性和线程安全线程安全线程的属性一、线程的基本概念在Ubuntu中使用pthread库的手册,需要sudo apt install manpages-posix manpages-posix-dev1.线原创 2020-10-18 17:05:18 · 139 阅读 · 0 评论 -
死锁以及处理机制
死锁以及处理方法一、死锁的概念二、死锁的处理策略三、死锁的预防四、死锁的避免五、 死锁的检测和解除一、死锁的概念死锁的概念死锁是指多个线程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进行都将无法向前推进。二、死锁的处理策略三、死锁的预防四、死锁的避免五、 死锁的检测和解除...原创 2020-10-16 14:01:16 · 446 阅读 · 0 评论 -
日志记录工具:log4cpp,使用流程
日志记录工具:log4cpp一、主要工具类二、使用流程三、使用单例模式进行简易封装四、改进方向一、主要工具类日志系统,就是将用户指定的信息,按照一定的格式,存储到一个指定的区域。根据面向对象的思想,可以抽象出一个执行日志记录的主体Category,该主体用于执行日志的开始,结束以及记录。而如何执行日志记录、这些功能也可以单独抽象出一个类,作为Category的一种属性。log4cpp的开发主要使用以下四个工具类Category类。 执行日志记录任务的主体,其构造函数是protect类型,原创 2020-09-21 23:12:53 · 452 阅读 · 0 评论 -
C语言Linux线程池代码
Linux线程池原创 2020-09-19 14:44:07 · 229 阅读 · 0 评论 -
Linux网络编程
Linuxw网络编程一、网络通信的基本概念1.OIS模型和TCP/IP模型二、SOCKET编程三、EPOLL 多路复用四、五种IO模型一、网络通信的基本概念1.OIS模型和TCP/IP模型二、SOCKET编程三、EPOLL 多路复用四、五种IO模型...原创 2020-08-30 14:20:01 · 244 阅读 · 0 评论 -
Linux进程间通信完整总结
Linux进程间通信的方法一、管道通信管道的特点1.标准流管道2.无名管道3.命名管道FIFO二、system V的三种方法1.共享内存1.使用ftok获取共享内存2.使用shmget获取共享内存3.使用mmap获取共享内存4.hugepage的设定方法2.信号量3.消息队列一、管道通信管道的特点1.管道是一个字节流2.管道是单向的3.管道的容量是有限的4.管道一次写入数量最大为PIPE_BUF。多进程同时写入时,如果超过了这个数量,可能会发生数据混合。5.当管道中不存在数据时,read操作原创 2020-08-25 22:03:52 · 623 阅读 · 0 评论 -
Linux进程知识点总结
Linux 进程0.基本概念功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入0.基本概念我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:原创 2020-08-16 13:39:43 · 562 阅读 · 0 评论 -
Linux系统io基于文件描述符的操作
基于文件标识符进行的文件操作被设计为无缓冲的结构,没有流结构的读写指针,需要通过设置每次写入的大小来实现对文件的读写操作需要的头文件#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#include<unistd.h>基本操作单位1.文件描述符 int 类型 主要就是使用文件描述符进行各种操作//(2.文件状态 struct stat,(inod...原创 2020-08-13 22:28:58 · 377 阅读 · 0 评论 -
Linux系统IO目录文件操作
Linux目录文件 维护着一个链表的数据结构,目录文件的结构和单向链表的节点的类似,可利用链表的遍历方法来实现目录文件遍历.但是直接使用目录流对象不会得到一个链表的节点(因为是流对象),需要配合readdir指令来移动流的当前位置指针,并获得相应的链表节点(目录下的文件的信息)需要的头文件#include<dirent.h>#include<sys.types>//和流无关,目录相关操作用#include<unistd.h>目录的基本操..原创 2020-08-13 22:26:17 · 345 阅读 · 0 评论 -
简单使用makefile生成调试程序的步骤
第一步,预定义变量的声明CC:=gccRM:=rm -f第二步,定义目标和需要的依赖文件此处可以利用函数来检索当前目录下,所以符合模式规则的文件src := $( wildcard *.c)//文件名的检索替换有三种方式,//1,利用已有变量,通过模式串直接替换obj:= $(src:%.c=%.o)//2.通过字符串模式替换函数进行替换out:=$(patstrst %.c,%.out,$(src))第三步,设定目标及其依赖,以及目标实现的规则//多个目标生原创 2020-08-13 22:25:15 · 1516 阅读 · 0 评论 -
gdb的基本指令
使用gdb调试的前提条件1.必须在连接之前,即编译的阶段加入-g指令2.如果想要在运行出错后,排查出错原因,需要启用core功能->Linux命令行->ulimit -a 找到core Limit相关,->使用ulimit -c unlimited可直接设置存储容量无限制进入gdb调试模式的方法1.gdb [filename]2.gdb [filename] coregdb常用的调试参数//设定相关set args [args1] [..原创 2020-08-13 22:23:41 · 141 阅读 · 0 评论 -
gcc快速操作
从源代码生成可执行文件的步骤:main.c->预处理->main.i->编译->main.s->汇编->main.o->链接maingcc包括了全过程的指令基本指令-o 可以把处理过的文件以后面接的文件的形式保存下来实现预处理过程的指令为 gcc -E main.c -o main.i 此阶段将预处理指令展开加到源代码中实现编译的指令为 gcc -S main.i -o main.s 此阶段讲源代码翻译为汇编语言实现...原创 2020-08-13 22:22:42 · 511 阅读 · 0 评论