自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 信号block\pending、可重入函数

首先,先说明几个概念: 信号递达:实际执行信号的动作 信号未决:信号从产生到递达的状态 信号处理有三种情况:默认、忽略、用户自定义每个信号都有三个表:block、pending、handler block:表示信号是否被阻塞。用数据类型sigset_t存储的,0表示不被阻塞,1表示被阻塞。被阻塞的信号在产生时保持未决状态,直到进程解除对信号的阻塞,才执行递达的动作。...

2018-06-27 21:16:03 502

原创 进程间关系及守护进程

进程组作业会话进程组每一个进程都是属于一个进程组的。显然,它们的PCB中除了有进程ID之外,还有所属组的进程组ID。那进程组ID又是怎么来的呢?每一个进程组都有一个组长进程(该组长进程是进程组的第一个进程),组长进程ID就为进程组ID。组长进程可以创建进程组,创建该组中的进程。进程组的存在与否并不与组长进程是否终止相关,即进程组中只要有一个进程存在,那么进程组就存在。作业...

2018-06-27 18:00:45 213

原创 进程调度算法、task_struct结构体、僵尸进程,、孤儿进程

进程调度算法:先来先服务(FCFS) 按照作业提交或进程变为就绪状态的先后次序,分派CPU; 当前作业或进程占用CPU,直到执行完或阻塞,才出让CPU(非抢占方式)。 在作业或进程唤醒后(如I/O完成),并不立即恢复执行,通常等到当前作业或进程出让CPU。最简单的算法。轮转法(Round Robin) 将系统中所有的就绪进程按照FCFS原则,排成一个队列。 每次调度时将CPU分派给队...

2018-06-21 12:47:22 236

原创 malloc/free/new/delete详解

malloc/realloc/calloc在C语言中我们常用malloc/calloc/realloc动态开辟空间,free释放空间。 那malloc/calloc/realloc又有什么不同? 函数原型如下void *malloc( size_t size );//参数是开辟空间的字节数void *calloc( size_t num, size_t size );//第一个参...

2018-06-19 11:09:23 206

原创 fd与FILE结构体

文件描述符 每个进程都有一个指针*file,指向表file_struct,该表中最重要的部分是fd_array[]的一个指针数组,每个元素都是一个指向打开文件的指针。文件描述符就是该数组的下标。系统对每一个进程都默认打开三个文件:stdin(标准输入)、stdout(标准输出)、stderr(标准错误)。对应的文件描述符分别是0、1、2。在Linux下,对设备和文件的操作都使用文件描述符来进行的...

2018-06-18 22:17:10 292

原创 管道

管道匿名管道命名管道匿名管道:创建:命令|创建、函数int pipe(int pipefd[2]);创建 pipe创建匿名管道: 父进程fork出子进程,父进程关闭读端、子进程关闭写端。如图, 注:0、1、2、3、4是文件描述符 管道特点:只能用于具有亲缘关系的进程间通信管道提供流式服务管道生命随进程,即进程结束,管道释放一般情况下,内核对管道操作进行同步与互斥...

2018-06-14 12:09:03 268

原创 函数重载

函数重载 概念:作用域相同、函数名相同、但函数参数不同(包括参数个数、参数顺序、参数类型不同)的函数形成重载。int Add(int a,int b){ return a+b;}int Add(int a,int b,int c){ return a+b+c;}int Add(char a,int b){ return (int)a+b;}...

2018-06-12 16:53:59 234

原创 信号的产生

信号什么是信号? 在程序正常执行过程中可能出现一个情况,Linux可以相应这些异常情况,当异常情况来了以后,我们的程序要执行相应的动作。那个情况就是一个信号。 产生信号的方式通过终端按键产生信号硬件异常产生信号调用系统函数向进程发信号软件条件产生信号注意:信号由操作系统发送 操作系统与进程是管理者与被管理者的关系。管理者与被管理者不直接沟通,管理者根据底层硬件数据与...

2018-06-11 17:29:14 1148

原创 C++引用、指针、值

引用引用概念: 引用不是新定义一个变量,而是给已存在的变量取一个别名。编译器不给引用变量开辟空间。创建引用变量: C++给&符号赋予了一个新的含义,用来声明引用,如下:int a = 10;int& ra = a;//ra为a的引用此处ra与a的值和地址都相同,其实就是同一内存空间的取得两个名字 注意:引用变量必须初始化,且之后永不改变,即只能引用...

2018-06-11 11:42:46 458

原创 静态库、动态库

静态库 其中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 139

原创 自主shell输入、输出重定向

重定向 什么是重定向?一般情况下、Linux运行命令时都会打开三个文件:stdin(标准输入)、stdout(标准输出)、stderr(标准错误)。文件描述符分别为0、1、2。重定向就是把原本应该到标准输入、标准错误、标准输出的内容到file中。重定向的本质是什么?例如,printf是c库中的IO函数,会把内容输出到stdout,在stdout底层访问文件的时候,找的还是fd...

2018-06-08 14:07:05 262

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除