Linux
爬比我。
这个作者很懒,什么都没留下…
展开
-
信号
当我们无法正常结束一个程序时,可以用任务管理器强制结束这个进程,但这其实是怎么实现的呢?同样的功能在Linux上是通过生成信号和捕获信号来实现的,运行中的进程捕获到这个信号然后作出一定的操作并最终被终止。在软件层次上是对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是进程间通信机制中唯一的异步通信机制,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。进程之间可以互相通过系统调用kill发送软中断信号。内核也可以因为内部事原创 2020-11-11 23:09:40 · 133 阅读 · 0 评论 -
函数wait、waitpid
当一个进程正常或者异常终止后,内核会给父进程发送SIGCHLD信号,因为子进程终止是一个异步事件,所以这个信号也是内核向父进程发送的异步通知,现在需要知道的是调用wait或waitid会发生什么:如果其所有子进程还在运行,则阻塞;如果一个进程已终止,正在等待父进程获取其终止状态,取得该进程的终止状态立即返回。如果它没有任何子进程,返回出错;#include<sys/wait.h>pid_t wait(int *status)pid_t waitid(pid_t pid,int *原创 2020-11-03 20:52:17 · 218 阅读 · 0 评论 -
fork vfork区别
进程描述符及任务结构内核把进程的列表存放在任务队列的双向循环链表中,链表中的每一项都是类型为task_struct,称之为进程描述符或者叫做进程控制块的结构,该结构包含着一个具体进程的全部信息。task_struct在32位操作系统上大小约为1.7KB,看着挺大,但是要考虑到该结构体内包含着一个进程的所有信息,那么也就挺小的了。task_struct包含的信息包括:打开的文件,进程的地址空间,挂起的信号,进程的状态,等等。通过slab分配器动态分配task_struct,所以只需要在内核栈底开辟一个原创 2020-11-03 12:15:50 · 2327 阅读 · 0 评论 -
进程
进程:进行就是正在进行中的程序,程序运行起来需要被加载到内存中。进程就是操作系统的描述,这个描述叫PCB(进程控制块),Linux下PCB有自己的名字叫task_struct。而操作系统就是使用task_struct结构体描述进程,使用双向链表来将这些结构体组织起来进行管理。task_struct(PCB)内容分类:标识符:就是进程的PID。状态:任务状态、退出代码,退出信号等。优先级:相对于其他进程的优先级。程序计数器:程序中即将被执行的下一条指令的地址。内存指针:包括程序代码原创 2020-10-28 23:53:43 · 171 阅读 · 0 评论 -
Linux进程环境
7.2main函数C程序总是从main函数开始执行的。main函数的原型是int main(int argc, char* argv[])其中,argc是命令行参数的数目,argv是指向参数的各个指针所构成的数组。7.3进程终止有8种方式可以使进程终止,其中5个是正常终止:从main函数返回; 调用exit; 调用_exit或_Exit; 左后一个线程从启动例程返回; 最后一个线程调用pthread_exit;异常终止有三种:调用abort函数; 接到一个信号;原创 2020-10-26 23:34:53 · 88 阅读 · 0 评论 -
Linux文件I/O
Linux系统中大多数文件I/O只需要用到五个函数:open、read、write、lseek、以及close。文件描述符相对于内核而言,所有的打开的文件都通过文件描述符引用。文件描述符是一个非负整数。当打开一个文件或者创建一个新文件时,内核向进程返回一个文件描述符。当读写一个文件时,使用open或creat返回文件描述符标识该文件,将其参数传送给read或write。函数open和openat调用open或者openat函数可以打开或创建一个文件。#include <fcntl原创 2020-10-14 23:35:07 · 219 阅读 · 0 评论 -
文件与文件系统的压缩
首先我们看一下Linux下面常见的压缩文件的拓展名。*.z compress程序压缩的文件;*.zip zip程序压缩的文件;*.gz gzip程序压缩的文件;*.bz2 bzip2程序压缩的文件;*.xz xz程序压缩的文件;*.tar ...原创 2020-02-20 21:23:10 · 765 阅读 · 0 评论 -
Linux文件内容查阅
如果我们要查阅一个文件的内容时,该如何是好呢?下面是文件操作的一些基础命令。cat 由第一行开始显示文件内容 tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写! nl 显示的时候,顺道输出行号! more 一页一页的显示文件内容 less 与 more 类似,但是比 more 更好的是,他可以往前翻页! head 只看头几行 tail 只看尾巴几行...原创 2019-11-29 09:48:22 · 384 阅读 · 0 评论 -
Linux文件属性
当我们执行ls-al时会看到下面的内容:ls是list的意思,重点在于显示文件的文件名与相关属性。而参数-al则表示列出所有的文件详细的权限与属性(包含隐藏文件,就是文件名第一个字符为.的文件)。我们来解释一下上图七列的意思。第一列代表文件的类型与权限。如果注意看的话你会发现他有十个字符。第一个字符代表的是这个文件是目录文件或者链接文件。若是[d]可则是目录 , 若...原创 2019-11-16 18:02:29 · 670 阅读 · 0 评论