
Linux
爬比我。
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
信号
当我们无法正常结束一个程序时,可以用任务管理器强制结束这个进程,但这其实是怎么实现的呢?同样的功能在Linux上是通过生成信号和捕获信号来实现的,运行中的进程捕获到这个信号然后作出一定的操作并最终被终止。 在软件层次上是对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是进程间通信机制中唯一的异步通信机制,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。进程之间可以互相通过系统调用kill发送软中断信号。内核也可以因为内部事原创 2020-11-11 23:09:40 · 191 阅读 · 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 · 274 阅读 · 0 评论 -
fork vfork区别
进程描述符及任务结构 内核把进程的列表存放在任务队列的双向循环链表中,链表中的每一项都是类型为task_struct,称之为进程描述符或者叫做进程控制块的结构,该结构包含着一个具体进程的全部信息。 task_struct在32位操作系统上大小约为1.7KB,看着挺大,但是要考虑到该结构体内包含着一个进程的所有信息,那么也就挺小的了。task_struct包含的信息包括:打开的文件,进程的地址空间,挂起的信号,进程的状态,等等。 通过slab分配器动态分配task_struct,所以只需要在内核栈底开辟一个原创 2020-11-03 12:15:50 · 2510 阅读 · 0 评论 -
进程
进程: 进行就是正在进行中的程序,程序运行起来需要被加载到内存中。进程就是操作系统的描述,这个描述叫PCB(进程控制块),Linux下PCB有自己的名字叫task_struct。而操作系统就是使用task_struct结构体描述进程,使用双向链表来将这些结构体组织起来进行管理。 task_struct(PCB)内容分类: 标识符:就是进程的PID。 状态:任务状态、退出代码,退出信号等。 优先级:相对于其他进程的优先级。 程序计数器:程序中即将被执行的下一条指令的地址。 内存指针:包括程序代码原创 2020-10-28 23:53:43 · 207 阅读 · 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 · 116 阅读 · 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 · 262 阅读 · 0 评论 -
文件与文件系统的压缩
首先我们看一下Linux下面常见的压缩文件的拓展名。 *.z compress程序压缩的文件; *.zip zip程序压缩的文件; *.gz gzip程序压缩的文件; *.bz2 bzip2程序压缩的文件; *.xz xz程序压缩的文件; *.tar ...原创 2020-02-20 21:23:10 · 789 阅读 · 0 评论 -
Linux文件内容查阅
如果我们要查阅一个文件的内容时,该如何是好呢?下面是文件操作的一些基础命令。 cat 由第一行开始显示文件内容 tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写! nl 显示的时候,顺道输出行号! more 一页一页的显示文件内容 less 与 more 类似,但是比 more 更好的是,他可以往前翻页! head 只看头几行 tail 只看尾巴几行 ...原创 2019-11-29 09:48:22 · 431 阅读 · 0 评论 -
Linux文件属性
当我们执行ls-al时会看到下面的内容: ls是list的意思,重点在于显示文件的文件名与相关属性。而参数-al则表示列出所有的文件详细的权限与属性(包含隐藏文件,就是文件名第一个字符为.的文件)。 我们来解释一下上图七列的意思。 第一列代表文件的类型与权限。 如果注意看的话你会发现他有十个字符。 第一个字符代表的是这个文件是目录文件或者链接文件。 若是[d]可则是目录 , 若...原创 2019-11-16 18:02:29 · 728 阅读 · 0 评论