随笔分类 -  linux学习

摘要:1.libevent介绍 简介 基本的socket变成是阻塞/同步的,每个操作除非已经完成,出错,或者超时才会返回,这样对于每一个请求,要使用一个线程或者单独的进程去处理,系统资源没有办法支撑大量的请求。posix定义了可以使用异步的select系统调用,但是因为它采用了轮询的方式来判断某个fd是否 阅读全文
posted @ 2020-05-11 08:56 Single_Dont 阅读(834) 评论(0) 推荐(0)
摘要:一、介绍 1、阻塞方式: 1) 写进程未退出,read阻塞,等待写端的输入 2) 写进程终止了或关闭了该FIFO,read非阻塞,为FIFO的读进程产生一个文件结束标志,read的返回值为0。 2、非阻塞方式: 假设一个进程以非阻塞读方式打开一个FIFO.该FIFO之前已经被以写方式被其他进程打开, 阅读全文
posted @ 2020-04-01 10:53 Single_Dont 阅读(1635) 评论(0) 推荐(0)
摘要:1.首先解释一下,exec函数的作用:它是为了在一个程序中运行另一个程序。 例如:在一个程序中,执行fork(),可以产生两个进程,我们可以通过exec函数族来实现对父子进程的执行程序进行改变。 2.exec函数族 #include <unistd.h> extern char **environ; 阅读全文
posted @ 2020-03-31 19:32 Single_Dont 阅读(591) 评论(1) 推荐(0)
摘要:I/O多路复用 select select 允许进程指示内核等待多个事件中的任何一个发生,并只在有一个或多个事件发生或指定时间后返回它。 select函数原型 返回值:监听到有事件发生的文件描述符的个数,超时为0,错误为 -1. 1.当监视的相应的文件描述符集中满足条件时,比如说读文件描述符集中有数 阅读全文
posted @ 2019-09-14 22:08 Single_Dont 阅读(221) 评论(0) 推荐(0)
摘要:1.首先先介绍一下什么是静态库、什么是动态库? 静态函数库: 这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进可执行文件了。当然这也会 阅读全文
posted @ 2019-08-21 21:27 Single_Dont 阅读(573) 评论(0) 推荐(0)
摘要:在linux系统下,对于程序执行的过程中,我们都会想到进程。而创建进程通常使用fork函数,当然还有vfork函数。 今天在这,我将分享一下我的学习心得:关于fork()和vfork() fork() 1.定义:表示进程A创建进程B。在创建的过程中,进程B拷贝了一份进程A的所有资源。(进程A:父进程 阅读全文
posted @ 2019-08-11 23:41 Single_Dont 阅读(183) 评论(0) 推荐(0)
摘要:创建一个hello.c文件,按步骤操作: 一、预编译 <生成 hello.i文件 > 操作步骤:gcc -E hello.c -o hello.i 1.将所有的#define删除,并展开所有的宏定义; 2.处理所有的预编译指令,例如:#if,#elif,#else,#endif; 3.处理#incl 阅读全文
posted @ 2019-08-07 16:17 Single_Dont 阅读(957) 评论(0) 推荐(0)
摘要:整了好长时间才弄好分享一下,我采用本地源安装mariadb。 需要配置本地源参考:https://www.cnblogs.com/single-dont/p/10991153.html 安装命令 yum -y install mariadb mariadb-server 安装完成MariaDB,首先 阅读全文
posted @ 2019-06-10 00:09 Single_Dont 阅读(137) 评论(0) 推荐(0)
摘要:1.首先我们需要配置本地源 ①首先配置虚拟机镜像文件,此镜像文件也可作为安装系统镜像。 ②进入虚拟机系统中进行,我们需要在虚拟机系统先找到镜像文件,路径:dev/sr0 我们需要将镜像文件挂载在mnt文件夹(可以在此目录下新建自己定义的目录。如:mnt\yum) 挂载命令:mount /dev/sr 阅读全文
posted @ 2019-06-08 17:11 Single_Dont 阅读(1881) 评论(0) 推荐(0)