Linux
文章平均质量分 69
wpeaceminusone
这个作者很懒,什么都没留下…
展开
-
Linux中task_struct结构体注释
进程控制块进程就是程序动态运行的实例,它是承担分配系统资源的实体。我们也可以把进程当成是由一组元素组成的实体,进程的两个基本的元素时程序代码和与代码相关联的数据集合。 task_struct是Linux内核的⼀一种数据结构,它会被装载到RAM⾥里并且包含着进程的信息。 每个进程都把它的信息放在 task_struct 这个数据结构⾥里,task_struct 包含了这些内容: 标识符原创 2017-04-10 18:05:34 · 441 阅读 · 0 评论 -
进程间通信---管道
管道管道是⼀一种最基本的 IPC机制,由pipe函数创建。#include<stdio.h>int pipe(int fileds[2])调用pipe函数时在内存中开辟一块缓冲区(就称为管道),用于通信,它有一个读端和一个写端,通过函数参数传给用户程序两个文件描述符,fileds[0]指向管道的读端,fileds[1]指向管道的写端。(方便记忆就可以理解为,标准输入0,标准输出1)看起来管道就像是原创 2017-06-03 22:57:45 · 265 阅读 · 0 评论 -
进程间通信---共享内存
共享内存共享内存可以提供给服务器进程和客户进程之间进行通信,不需要进行数据的复制,所以速度最快,只需要让两个进程通过页表映射到同一块物理内存即可,这样,这块物理内存是两个进程都能看到的,这样当一个进程进行写操作,另外的一个进程也就可以做读操作。所以问题关键也就是给出一个特定的存储区。通常情况下,我们需要确保一个进程在写的时候,另外一个进程不能去读,所以我们可以使用信号量进行共享内存访问。 创建共享原创 2017-06-07 12:58:53 · 311 阅读 · 0 评论 -
实现简单的shell
shell原理shell就是运用程序替换的原理进行实现的。 何为程序替换? 假如操作系统正在执行某一个程序,然后我们利用程序替换函数指定一个新的程序,让操作系统去执行我们新指定的程序。也就是这样一种情形下,我们fork一个进程,如果fork成功,子进程会和父进程执行相同的代码,而我们创建子进程是希望子进程执行指定的操作,所以需要执行exec族函数。 实现简单的shell实现步骤: 1原创 2017-05-23 16:04:31 · 362 阅读 · 0 评论 -
简析文件描述符(fd)和FILE结构体的关系
文件描述符(fd)文件描述符(file descriptor)用来访问文件。文件描述符是非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。通常情况下,将一个程序从硬盘加载到内存后,这个程序就化身为了一个进程,这时系统会默认打开三个文件: 标准输入(stdin)、标准输出(stdout)、标准错误(stderr)。这三个文件相对应的三个文原创 2017-05-11 09:28:59 · 636 阅读 · 0 评论 -
僵尸进程与孤儿进程
僵尸进程在UNIX 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他, 那么他将变成一个僵尸进程。 但是如果该进程的父进程已经先结束了,那么该进程就不会变成僵尸进程, 因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程, 看有没有哪个进程是刚刚结束的这个进程的子进程,如果是的话,就由Init 来接管他,成为他的父进程。 进程的危害 由于子进原创 2017-05-02 15:11:49 · 211 阅读 · 0 评论 -
Linux实现简单的进度条
说起进度条,我们自然不陌生,在我们下载文件或者视频的时候,都会有进度条来提示我们下载的进度,所以今天我们就在Linux下实现一下简单的进度条的程序。1、回车换行 回车换行(\n):每次光标移到下一行的行首位置处; 换行(\r):每次光标移到本行的行首位置处 在输入\r,光标将移动到行首,输入\n光标换行并且移动到下一行行首,相当于\n\r。2、行缓冲区、fflush 缓冲区分为无缓冲、行缓原创 2017-04-06 18:24:05 · 299 阅读 · 0 评论 -
Linux中用stat命令查看文件时3个时间点解析
stat命令用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。语法stat(选项)(参数)参数文件:指定要显示信息的普通文件或者文件系统对应的设备文件名。实例如图所示,会出现3个类型的时间,分别是Access,Modify,Change。下面我们就对这3个时间进行详细解释下。access time:表示我们最后一次访原创 2017-03-20 22:20:38 · 712 阅读 · 0 评论 -
Linux中find指令用法
find命令 功能:在目录结构中搜索文件,并执行指定的操作。此命令提供了相当多的查找条件,功能很强大。 语法:find 起始目录 寻找条件 操作 说明:find命令从指定的起始目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并对之采取相关的操作。 该命令提供的寻找条件可以是一个用逻辑运算符not、and、or组成的复合条件。逻辑运算符and、or、not的含义原创 2017-03-27 16:58:18 · 472 阅读 · 0 评论 -
Linux中vim的配置
一、gcc /g++的安装 gcc以及g++是linux的编译器。 所以我们在学习使用Linux时首先需要安装gcc g++. 首先检查你的linux是否有gcc和g++,输入which gcc/g++,如果有就会显示路径,如果没有输入 yum install gcc 即可。 切换到超级用户,此时输入yum install gcc 此时输入which gcc已经会显示路径,表示安装已经完成原创 2017-04-06 16:33:10 · 293 阅读 · 0 评论 -
进程间通信---消息队列
消息队列消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。但是消息队列与命名管道一样,每个数据块都有一个最大长度的限制。 注意: 因为管道是随进程的,进程结束管道生命周期也就结束,而对于消息队列来说,是随操作系统的,就算进程突出,不去手动的释放消原创 2017-06-07 18:01:44 · 456 阅读 · 0 评论