Linux笔记
文章平均质量分 55
柯小诺
这个作者很懒,什么都没留下…
展开
-
libevent
libevent概述Libevent 是开源社区的一款高性能的 I/O 框架库,使用 Libevent 的著名案例有:高性能的分布式内存对象缓存软件 memcached,Google 浏览器 Chromium 的 Linux 版本。作为一个 I/O 框架库,Libevent 具有如下特点:◼ 跨平台支持。 Libevent 支持 Linux、Unix 和 Windows。◼ 统一事件源。Libevent 对 I/O 事件、信号和定时事件提供统一的处理。◼ 线程安全。Libevent 使用 libev原创 2022-03-07 17:56:42 · 260 阅读 · 0 评论 -
守护进程-
守护进程运行周期长,在后台运行,不和用户交互会话:会话是一个或多个进程组的集合。会话首进程:创建此会话的进程,会话首进程的进程ID是会话ID,首进程是其所在的进程组的组长进程,因为在其创建一个会话的同时已经变成了一个组长进程。进程组:每个进程属于一个进程组,进程组是一个或多个进程的集合,每个进程有一个唯一的进程组ID。组长进程:每个进程组可以有个组长进程,组长进程的ID就是进程组的ID;组长进程可以创建进程组以及该组中的进程;进程组的创建从第一个进程(组长进程)加入开始;进程组的组号取第一个加入组原创 2022-03-07 17:56:08 · 2204 阅读 · 0 评论 -
I/O 复用函数,poll,epoll
I/O 复用使得程序能同时监听多个文件描述符,这对于提高程序的性能至关重要。通常, 网络程序在下列情况下需要使用 I/O 复用技术:◼ TCP 服务器同时要处理监听套接字和连接套接字。◼ 服务器要同时处理 TCP 请求和 UDP 请求。◼ 程序要同时处理多个套接字。◼ 客户端程序要同时处理用户输入和网络连接。◼ 服务器要同时监听多个端口。需要指出的是,I/O 复用虽然能同时监听多个文件描述符,但它本身是阻塞的。并且当多个文件描述符同时就绪时,如果不采取额外的措施,程序就只能按顺序依处理其中的每一原创 2022-03-07 17:55:03 · 2456 阅读 · 0 评论 -
网络编程—
1.1网络: 网络是由若干结点和连接这些结点的链路组成,网络中的结点可以是计算机,交换机、路由器等设备。 网络设备有:交换机、路由器、集线器传输介质有:双绞线、同轴电缆、光纤1.2互联网: 把多个网络连接起来就构成了互联网。目前最大的互联网就是我们常说的因特网。1.3IP地址: IP 地址就是给因特网上的每一个主机(或路由器)的每一个接口分配的一个在全世界范围内唯一的标识符。IP 地址因其特殊的结构使我们可以在因特网上很方便地进行寻址。 IP 地址有分 IPV4 和 IPV6 ...原创 2021-12-13 18:18:34 · 1551 阅读 · 0 评论 -
--线程---
1.线程是进程内部的一条执行序列或执行路径,一个进程可以包含多条线程。 线程是一个进程内部的一个控制序列。 线程的实现有以下三种方式: 内核级线程:创建开销大,由内核直接管理,可以使用多个处理器 用户级线程:创建开销小,可以创建很多,无法使用多个处理器 组合级线程1.1为什么需要线程?<1>.提高应用程序的响应速度,并发操作时使用<2>.使用线程提高CPU利用率1.2线程函数/* pthread_create()用于创建线程 thread: 接原创 2021-12-04 19:32:13 · 419 阅读 · 0 评论 -
生产者消费者
生产着生产的由消费者消费,只有生产者生产了,消费者才能消费一个进程代表生产者,一个进程代表消费者,一片内存代表中介,生产者生产的物品从一端放入内存,消费者从其中获取物品使用信号量和互斥锁,代码示例:#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<semaphore.h>#include<string.h>#include<time.h>#inc原创 2021-11-27 20:57:40 · 52 阅读 · 0 评论 -
消息队列-
1.消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。1.1msgget函数【创建和访问一个消息队列】int msgget(key_t key,int msgflg);1.2msgsnd函数【添加】int msgsnd(int msqid,const void* msg_ptr,size_t msg_sz,int msgflg); msqid是由msgget函数返回的消息队列标识符 msg_ptr是由一个指向准备发送消息的指针 msg_sz是msg_ptr指向的消息的长度原创 2021-11-27 20:56:47 · 133 阅读 · 0 评论 -
信号量--
1.信号量:同步进程为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代码的临界区域。 临界区:访问临界资源的代码端 临界资源:同一时刻只允许一个进程访问的资源信号量是一个特殊的变量,程序对其访问都是原子操作,且只允许对它进行等待(即P(信号变量))和发送(即V(信号变量))信息操作。 p 减一,获取资源 v 加一,释放资源最简单的信号量是只能取0和1的变量,这也是信号量最常见的一原创 2021-11-27 20:55:57 · 1050 阅读 · 0 评论 -
管道---
1.管道管道可以用来在两个进程之间传递数据,如: ps -ef | grep “bash”, 其中‘|’就是管道,其作用就是将ps 命令的结果写入管道文件,然后 grep 再从管道文件中读出该数据进行过滤。2.有名管道有名管道可以在任意两个进程之间通信有名管道的创建:1>命令创建: mkfifo FIFO2>系统调用创建#include <sys/types.h>#include <sys/stat.h>//filename 是管道名 mode 是创建的原创 2021-11-27 20:55:01 · 119 阅读 · 0 评论 -
【无标题】
1.操作文件的系统调用 : open,read,write,closefopen()->会调用 openint fd=open(“file.txt”,O_WRONLY|O_CREAT,0600); 6代表读写只写 ,如果没有就创建write(fd,"hello",5);close(fd);int fd=open(“file.txt”,O_RDONLY);只读char buff[128]={0};int n=read(fd,buff,127);printf("buff=%s原创 2021-11-27 20:53:55 · 56 阅读 · 0 评论 -
进程复制与替换
1.printf函数输出printf 函数并不会直接将数据输出到屏幕,而是先放到缓冲区中,只有一下三种情况满足,才会输出到屏幕。1) 缓冲区满2)强制刷新缓冲区 fflush3) 程序结束时#include <stdio.h>#include <stdlib.h>#include <unistd.h>int main(int argc, char* argv[],char* envp[]) { printf("hello"); //fflush(st原创 2021-11-27 20:53:07 · 488 阅读 · 0 评论 -
2021-11-13
1.基本组成1.1五大部件(1) 运算器:也叫算数逻辑单元,完成对数据的各种常规运算,如加减乘除,也包括逻辑运算,移位,比较等。(2) 控制器 :它是整个计算机系统的控制中心,它指挥计算机各部分协调地工作,保证计算机按照预先规定的目标和步骤有条不紊地进行操作及处理。(3) 存储器 :存储程序和各种数据。(4) 输入设备:把人所熟悉的信息如,图片,声音,文字,转换为计算机能够识别的信息存储起来。(5) 输出设备 : 把计算机机能识别的信息转换为人能识别的信息,进行呈现。1.2系统总线(1) 数原创 2021-11-13 20:40:05 · 69 阅读 · 0 评论 -
2021-11-13
1.库:库是一组预先编译好的方法的集合Linux 系统存储的库的位置一般在:/lib 和 /usr/lib。在 64 位的系统上有些库也可能被存储在/usr/lib64 下。库的头文件一般会被存储在/usr/include 下或其子目录下。库有两种:一种是静态库,其命令规则为 libxxx.a,一种是共享库,其命令规则为 libxxx.so2.静态库以下是需要生成静态库的”.c”文件,其中“foo.h”中是函数的声明,“add.c”和“max.c”是函数的定义:第一步:先将需要生成库文件的所原创 2021-11-13 20:38:10 · 662 阅读 · 0 评论 -
Linux的gcc
1.gcc分步编译链接(1) 预编译 : gcc -E main.c -o main.i(2) 编译: gcc -S main.i -o main.s(3) 汇编: gcc -c main.s -o main.o(4) 链接: gcc main.o -o main多文件编译链接:【gcc -o main main.c max.c add.c】2.编译链接过程(1)预编译阶段a) 删除所有的“#define”,并且展开所有的宏定义;b) 处理所有的条件预编译指令,“#if”、“原创 2021-10-12 23:38:52 · 659 阅读 · 0 评论 -
Linux基础命令
1.文件类型普通文件 ‘-’目录文件 ‘d’管道文件 ‘p’链接文件 ‘l’设备文件(块设备 ’b’ 、字符设备 ‘c’)套接字文件 ‘s’权限:r 读 4 w 写 2 x 执行 1 - 无 02.基础命令2.1>chmod 改权限u 表属主 g 同组人 o 其他人 a 所有人 “+”表示增加权限 “-”表示去掉权限2.2>pwd 显示当前位置的绝对路径2.3>cd 切换目录,c原创 2021-10-12 23:36:03 · 85 阅读 · 0 评论 -
Linux介绍
1.Linux和Windows的区别a>Linux主要使用命令行操作系统,Windows图形化b>Linux主要应用于服务器,Windows是个人操作系统【服务器上面不会安装图形化界面】c>Linux属于开源项目,而Windows不开源【Linux用C语言写,源代码面向全世界开放,没有后门;Windows用C++写的,微软未向全世界开放。】d>Linux是多用户系统,Windows是单用户系统【Linux可多用户同时登陆,Windows不可以】2.Linux系统的目录结原创 2021-10-08 20:58:40 · 45 阅读 · 0 评论