
Linux
IT_kiki
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
静态库与共享库
一、库文件引入当我们编写程序时用到了链表时,我们写了一个链表的声明list.h 及其实现list.c我们再将其编译链接到main函数中时就可以用了,但是当下次,做另一件事或者项目组里的其他成员要用这个链表时,他们也要重新编译这个链表的实现,这就导致每次使用每次都要编译,做了很多重复的工作。所以引入库后,将已经编译好的一个或多个文件放在一起,其他人可多次直接使用不用编译,他们并不清楚具体的实现,...原创 2019-07-24 15:50:48 · 299 阅读 · 0 评论 -
I/O操作——同步与异步,阻塞与非阻塞
一、什么是I/O?I/O是Input/Output(输入/输出),可分为I/O设备和I/O接口两个部分。二、什么是I/O操作?在Linux中,一切皆文件,而文件是什么呢?文件就是一串二进制流而已,不管socket,还是FIFO、管道、终端,一切都是文件,一切都是流。在信息交换的过程中,我们对这些流进行数据的收发操作,简称为I/O操作(input and output),简言之就是磁盘读...原创 2019-08-26 19:52:06 · 743 阅读 · 0 评论 -
两种高效的事件处理模式——Reactor和Proactor模式
随着网络设计模式的兴起,Reactor 和Proactor事件处理模式应运而生。同步IO模型通常用于实现Reactor模式,异步I/O模型则用于实现Proactor模式。今天我们来看,如何使用同步I/O方式模拟出Proactor 模式。一、Reactor模式Reactor是这样一种模式,它要求主线程(I/O 处理单元,下同)只负责监听文件描述上是否有事件发生,有的话就立即将该事件通知工作线...原创 2019-08-26 19:55:10 · 469 阅读 · 0 评论 -
【Linux】Linux下文件操作命令
本文列出的文件操作命令有:1.创建 2.删除 3.拷贝 4.剪切/移动 5.重命名 6.chmod 7.查看文件命令(more,less,cat,head,tail) 8.grep ...原创 2019-07-30 00:24:34 · 303 阅读 · 0 评论 -
【Linux】写实拷贝、父子进程间数据共享以及僵死进程
目录一、写实拷贝二、父子进程间数据共享三、僵死进程我们都知道fork之后,会产生子进程,那么今天就来看一下,产生的子进程与父进程之间的数据共享问题。要说这个我们必须明确写实拷贝的概念一、写实拷贝fork之后,子进程会拷贝父进程的PCB结构(这个拷贝是浅拷贝),然后对PCB里的数据做修改(pid,ppid等属性信息,也有保留的一些不做修改的)。我们现在假设一种情况,若fork...原创 2019-08-08 11:56:49 · 715 阅读 · 1 评论 -
【Linux】I/O复用之poll和epoll
一、pollpoll系统调用和select相似,也是在指定时间内轮训一定数量的文件描述符,以测试其中是否有就绪着,1.函数原型及参数解释fds:fds参数是一个pollfd结构类型的数组,传的是数组的首地址,数组是由用户定义的,它指定所有我们感兴趣的文件描述符上发生的可读、可写和异常等事件。pollfd 结构体的定义如下:其中,fd成员指定用户关注的文件描述符的值;...原创 2019-07-28 16:13:04 · 223 阅读 · 0 评论 -
【Linux】进程的创建、管理和加载
一、进程创建进程通过fork()创建pid_t fork(void);fork函数是一个系统调用函数返回值:出错,返回-1成功,fork()一次调用返回两次。在原来进程中返回新进程的pid(不可能=0,0进程特殊的进程,被系统占用着),在新进程中返回0。新进程继承原来的数据、程序计数器,所以新进程从fork之后开始运行,我们把原来进程称为父进程,新生成的进程成为子进...原创 2019-07-31 21:08:41 · 339 阅读 · 0 评论 -
【Linux】I/O复用之select
一、I/O复用如果一个I/O流进来,我们就开启一个进程处理这个I/O流。那么假设现在有一百万个I/O流进来,那我们就需要开启一百万个进程一一对应处理这些I/O流(——这就是传统意义下的多进程并发处理)。思考一下,一百万个进程,你的CPU占有率会多高,这个实现方式及其的不合理。所以人们提出了I/O多路复用这个模型,一个线程或进程通过记录I/O流的状态来同时管理多个I/O,即一个线程或进程能够...原创 2019-07-26 20:24:37 · 292 阅读 · 0 评论 -
【Linux】Makefile文件
一、makefile文件介绍makefile关系到了一个工程的编译规则,一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。makefile带来的最大好处就是——“自动化编译”,(一次写好,一直使用)一旦写好,只需要一个make命令,整个工程完...原创 2019-07-31 11:04:41 · 465 阅读 · 0 评论 -
【Linux】主函数和输出缓冲区
一、主函数的参数主函数:int main(int argc ,char *argv[],char *envp[]);argc:参数列表中参数的个数,一个进程启动时,主函数至少会传递一个参数,argv[0]=启动这个进程的命令argv:给主函数传递的参数列表envp:传递的环境变量二、输出缓冲区1.什么是缓冲区?缓冲区是内存空间的一部分。也就是说,在内存空间中预留了一定的...原创 2019-07-30 21:06:47 · 248 阅读 · 0 评论 -
【Linux】Linux下文件操作函数
C语言中:fopen() fread() fwrite() fclose() fseek() ——库函数Linux: open() read() write() close() lseek() stat() ——系统调用函数1.库函数的系统调用函数的...原创 2019-07-30 19:13:17 · 723 阅读 · 0 评论 -
【Linux】Linux文件结构和文件属性信息
首先,我们必须明确两个概念绝对路径:从根目录(/)开始指定的一个文件存储的位置相对路径:从当前目录开始指定的文件存储的路径1.Linux中的文件结构/bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令。/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。/dev:dev是Device(设备)的缩写, 该目录下存放的...原创 2019-07-29 23:40:12 · 192 阅读 · 0 评论 -
软链接与硬链接
Linux上的文件类型分为:目录文件、普通文件、链接文件、管道文件、设备文件。今天我们来详细说一下链接文件,链接文件分为软链接和硬链接一、软链接1.软链接介绍软链接又称符号链接,相当于windows上的快捷方式,软链接就是一个普通文件,只是数据块内容有点特殊,存储源文件的存储路径,并不存储原文件内容,通过这个方式可以快速定位到软连接所指向的源文件实体。软链接可对文件或目录创建。软链接和...原创 2019-07-24 17:37:08 · 2700 阅读 · 1 评论 -
Linux虚拟地址空间布局以及进程栈和线程栈总结
这篇文章转自https://blog.youkuaiyun.com/FreeeLinux/article/details/53782986转载 2019-09-17 22:44:01 · 247 阅读 · 0 评论