linux
文章平均质量分 61
celine_
这个作者很懒,什么都没留下…
展开
-
linux重要命令、重要目录、 如何使用命令安装gcc/g++, gdb, vim
权限cd:x touch:wx ls:rx rm:wx mv:wx重要目录/bin: /usr/bin: 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。 /sys: 文件系统访问 Linux内核 /SELinux SELinux是一种基于域-类型模型(domain-type)的强制访问控制(MAC)安全系统,它由NSA编写并设计成内核模块包含...转载 2018-03-24 23:33:39 · 294 阅读 · 0 评论 -
信号的产生
信号什么是信号? 在程序正常执行过程中可能出现一个情况,Linux可以相应这些异常情况,当异常情况来了以后,我们的程序要执行相应的动作。那个情况就是一个信号。 产生信号的方式通过终端按键产生信号硬件异常产生信号调用系统函数向进程发信号软件条件产生信号注意:信号由操作系统发送 操作系统与进程是管理者与被管理者的关系。管理者与被管理者不直接沟通,管理者根据底层硬件数据与...原创 2018-06-11 17:29:14 · 1214 阅读 · 0 评论 -
进程调度算法、task_struct结构体、僵尸进程,、孤儿进程
进程调度算法:先来先服务(FCFS) 按照作业提交或进程变为就绪状态的先后次序,分派CPU; 当前作业或进程占用CPU,直到执行完或阻塞,才出让CPU(非抢占方式)。 在作业或进程唤醒后(如I/O完成),并不立即恢复执行,通常等到当前作业或进程出让CPU。最简单的算法。轮转法(Round Robin) 将系统中所有的就绪进程按照FCFS原则,排成一个队列。 每次调度时将CPU分派给队...原创 2018-06-21 12:47:22 · 252 阅读 · 0 评论 -
管道
管道匿名管道命名管道匿名管道:创建:命令|创建、函数int pipe(int pipefd[2]);创建 pipe创建匿名管道: 父进程fork出子进程,父进程关闭读端、子进程关闭写端。如图, 注:0、1、2、3、4是文件描述符 管道特点:只能用于具有亲缘关系的进程间通信管道提供流式服务管道生命随进程,即进程结束,管道释放一般情况下,内核对管道操作进行同步与互斥...原创 2018-06-14 12:09:03 · 301 阅读 · 0 评论 -
自主shell输入、输出重定向
重定向 什么是重定向?一般情况下、Linux运行命令时都会打开三个文件:stdin(标准输入)、stdout(标准输出)、stderr(标准错误)。文件描述符分别为0、1、2。重定向就是把原本应该到标准输入、标准错误、标准输出的内容到file中。重定向的本质是什么?例如,printf是c库中的IO函数,会把内容输出到stdout,在stdout底层访问文件的时候,找的还是fd...原创 2018-06-08 14:07:05 · 284 阅读 · 0 评论 -
静态库、动态库
静态库 其中L+库路径,-l+库名删除静态库之后,仍然能执行 代码如下://add.h 1 #ifndef __ADD_H__ 2 #define __ADD_H__ 3 4 int add(int x,int y); 5 6 #endif //__ADD_H__ 7 //add.c 1 #include"add.h" 2 ...原创 2018-06-08 15:06:39 · 171 阅读 · 0 评论 -
fd与FILE结构体
文件描述符 每个进程都有一个指针*file,指向表file_struct,该表中最重要的部分是fd_array[]的一个指针数组,每个元素都是一个指向打开文件的指针。文件描述符就是该数组的下标。系统对每一个进程都默认打开三个文件:stdin(标准输入)、stdout(标准输出)、stderr(标准错误)。对应的文件描述符分别是0、1、2。在Linux下,对设备和文件的操作都使用文件描述符来进行的...原创 2018-06-18 22:17:10 · 331 阅读 · 0 评论 -
进程间关系及守护进程
进程组作业会话进程组每一个进程都是属于一个进程组的。显然,它们的PCB中除了有进程ID之外,还有所属组的进程组ID。那进程组ID又是怎么来的呢?每一个进程组都有一个组长进程(该组长进程是进程组的第一个进程),组长进程ID就为进程组ID。组长进程可以创建进程组,创建该组中的进程。进程组的存在与否并不与组长进程是否终止相关,即进程组中只要有一个进程存在,那么进程组就存在。作业...原创 2018-06-27 18:00:45 · 328 阅读 · 0 评论 -
信号block\pending、可重入函数
首先,先说明几个概念: 信号递达:实际执行信号的动作 信号未决:信号从产生到递达的状态 信号处理有三种情况:默认、忽略、用户自定义每个信号都有三个表:block、pending、handler block:表示信号是否被阻塞。用数据类型sigset_t存储的,0表示不被阻塞,1表示被阻塞。被阻塞的信号在产生时保持未决状态,直到进程解除对信号的阻塞,才执行递达的动作。...原创 2018-06-27 21:16:03 · 560 阅读 · 0 评论