自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Linux - 进程间通信 - 信号量

一、概念  简单来讲,信号量是一个用来描述临界资源的资源个数的计数器。  信号量的本质是一种数据操作锁,它本身不具有数据交换的功能,而是通过控制其他的通信资源(文件、外部设备等)来实现进程间通信,他本身更只是一种外部资源的标识。信号量在此过程中负责数据操作的同步、互斥等功能。  当请求 一个使用信号量来表示 的资源时,进程需要先读取信号量的值来判断资源是否可用。大于0,资源可以请求;...

2016-09-10 18:33:00 180

转载 Linux - 进程间通信 - 命名管道

1、命名管道的特点:(1)是管道,可用于非血缘关系的进程间的通信(2)使用命名管道时,梁金成需要用路径表示通道。(3)命名管道以FIFO的文件形式存储于文件系统中。(FIFO:总是按照先进先出的原则工作,第一个被写入的数据将首先从管道中读出。)(4)命名管道是一个设备文件。(因此进程与创建FIFO的进程没有血缘关系,也可以通过访问路径进行通信。)2、命名管道的创建:(...

2016-09-03 16:51:00 145

转载 Linux - 进程间通信 - 匿名管道

一、概念:进程间通信( IPC,InterProcess Communication)  每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进城之间要交换数据必须通过内核,在内核中 开辟一块缓冲区进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内接提供的这种机制成为进程间通信(IPC,InterProcess Commu...

2016-09-03 16:35:00 141

转载 Linux--shell脚本之文本处理工具

文本处理工具--grep、sed、awk  Bash Shell提供了功能强大的文件处理工具:sed(流编辑器stream editor)和awk,都可使用正则表达式进行模式匹配。而grep又有助于理解sed和awk。1、grepLinux系统中grep命令是一种强大的文本搜索、查找过滤工具,,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Glob...

2016-08-11 13:49:00 139

转载 Linux--shell脚本之正则表达式

一、正则表达式的概念及特点:  正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。规定一些特殊语法表示字符类、数量限定符和位置关系,然后用这些特殊语法和普通字符一起表示一个模式,这就是正则表达式(Regular Expression)。给定一个正则表达式和另一个字...

2016-08-11 01:59:00 324

转载 Linux - IP数据报报头及个字段的意义

IP数据报的格式:  IP 数据报的首部长度和数据长度都是可变长的,但总是4字节的整数倍。  对于IPv4 ,4位版本字段是4。    (1)版本 占4位,指IP协议的版本。通信双方使用的IP协议版本必须一致。目前广泛使用的IP协议版本  号为4(即IPv4)。关于IPv6,目前还处于草案阶段。  (2)首部长度 占4位,可表示的最大十进制数值是15。请注意,这...

2016-08-04 01:31:00 673

转载 Linux - 死锁现象

一、死锁的概念:  1、死锁的现象描述:    在很多应用中,需要一个进程排他性的访问若干种资源而不是一种。例如,两个进程准备分别将扫描的文档记录到CD上。进程A请求使用扫描仪,并被授权使用。但进程B首先请求CD刻录机,也被授权使用。这时,A请求使用CD刻录机,但这个请求在B释放CD刻录机前会被拒绝。但是,进程B非但不会释放CD刻录机,还去请求扫描仪。这时,两个进程僵持不...

2016-08-04 00:51:00 333

转载 Linux--线程安全与可重入函数的异同

线程安全  比如一个 ArrayList 类,在添加一个元素的时候,它可能会有两步来完成:    1. 在 Items[Size] 的位置存放此元素;    2. 增大 Size 的值。  在单线程运行的情况下,如果 Size = 0,添加一个元素后,此元素在位置 0,而且 Size=1;而如果是在多线程情况下,比如有两个线程,线程 A 先将元素1存放在位...

2016-07-19 01:00:00 107

转载 Linux--管道pipe

管道是一种最基本的IPC机制,由pipe函数创建:#include <unistd.h>
int pipe(int filedes[2]);调用pipe函数时在内核中开辟一块缓冲区(称为管道)用于通信,它有一个读端一个写端,然后通过filedes参数传出给用户程序两个文件描述符,filedes[0]指向管道的读端,filedes[1]指向管道的写端(很好记,...

2016-07-19 00:32:00 104

转载 Linux--struct file结构体

struct file(file结构体):  struct file结构体定义在include/linux/fs.h中定义。文件结构体代表一个打开的文件,系统中的每个打开的文件在内核空间都有一个关联的struct file。它由内核在打开文件时创建,并传递给在文件上进行操作的任何函数。在文件的所有实例都关闭后,内核释放这个数据结构。在内核创建和驱动源码中,struct fi...

2016-07-17 01:21:00 510

转载 Linux--谈父子进程执行过程

  fork函数用于从已存在进程中创建一个新进程,新进程成为子进程,原进程成为父进程。这两个进程分别返回他们各自的返回值,其中父进程的返回值是子进程的进程号,子进程则返回0,因此返回值大于0标识父进程,等于0标识子进程。所以我们可以通过返回值来判定该进程是父进程还是子进程。fork函数创建新进程后的父子进程模型如下:下面用一个简单程序来观察父子进程之间的运行过程:...

2016-07-16 17:18:00 448

转载 Linux - 函数的栈帧

  栈帧(stack frame),机器用栈来传递过程参数,存储返回信息,保存寄存器用于以后恢复,以及本地存储。为单个过程(函数调用)分配的那部分栈称为栈帧。栈帧其实是两个指针寄存器,寄存器%ebp为帧指针,而寄存器%esp为栈指针,当程序运行时,栈指针可以移动(大多数的信息的访问都是通过帧指针的)。总之简单一句话,栈帧的主要作用是用来控制和保存一个过程的所有信息的。栈帧结构如下...

2016-06-28 03:16:00 137

转载 Linux-粘滞位的使用

  粘滞位(Stickybit),又称粘着位,是Unix文件系统权限的一个旗标。最常见的用法在目录上设置粘滞位,也只能针对⽬录设置,对于⽂件⽆效。则设置了粘滞位后,只有目录内文件的所有者或者root才可以删除或移动该文件。如果不为目录设置粘滞位,任何具有该目录写和执行权限的用户都可以删除和移动其中的文件。实际应用中,粘滞位一般用于/tmp目录,以防止普通用户删除或移动其他用户...

2016-06-28 01:10:00 130

转载 Linux - atexit()(注册终止)函数

进程终⽌的⽅式有8种,前5种为正常终⽌,后三种为异常终⽌:1、 从main函数返回;2 、调⽤exit函数;3 、调⽤_exit或_Exit;4 、最后⼀个线程从启动例程返回;5 、最后⼀个线程调⽤pthread_exit;6 、调⽤abort函数;7 、接到⼀个信号并终⽌;8 、最后⼀个线程对取消请求做出响应。atexit() 函数:注册终止函数 即main执行结束后调用的...

2016-06-26 23:29:00 273

转载 Linux - 进程调度算法

进程调度:  无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。一、进程的基本状态及状态间的转换:  1.等待态:等待某个事件的完成;  2.就绪态:等待系统分配处理器以便运行;  3.运行态:...

2016-06-11 23:54:00 222

转载 memory库函数的实现

下面主要对常用的几个memory库函数的实现(memcpy、memmove、memset、memcmp):memcpy函数与memmove函数:相同点:  两者实现的功能均为从src拷贝count个字符到dest。不同点:  1、memcpy函数不考虑内存是否有覆盖的问题,也就是说他只负责完成拷贝工作,至于拷贝后的值正确与否,它是不理会的。  2、memmove函数考...

2016-06-03 17:08:00 549

转载 剑指Offer面试题1

面试题1:题目描述:  如下为类型CMyString的声明,请为该类型添加赋值运算符函数。    class CMyString    {    public:      CMyString(char* pData = NULL);      CMyString(const CMyString& str);      ~CMyString(void);    pr...

2016-06-02 13:08:00 86

转载 Linux - PCB之task_struct结构体

task_struct结构描述1.进程状态(State)进程执行时,它会根据具体情况改变状态 。进程状态是调度和对换的依据。Linux中的进程主要有如下状态,如表4.1所示。内核表示含义TASK_RUNNING可运行TASK_INTERRUPTIBLE可中断的等待状态...

2016-06-01 12:35:00 108

转载 Linux-配置vim开发环境

  vim是一个类似于vi的著名的功能强大、高度可定制的文本编辑器,在vi的基础上改进和增加了很多特性。vim是纯粹的自由软件。为了满足使用者的要求,将vim界面配置为自己想要的界面类型也变得流行起来。下面,简单介绍一下vim的配置过程:  1、首先,为了确保易操作性(直接将Windows下的文件拖拽至虚拟机环境下),在配置vim前检查一下Linux环境下的文件共享功能是否开启:...

2016-05-28 23:53:00 137

转载 Linux-Find命令

在Linux中,我们经常要查找某个文件,但不知道放在哪里了,针对这种情况,我们可以使用以下这些命令来进行文件的搜索:Which: 查看可执行文件的位置。whereis: 查看文件的位置。locate: 配合数据库查看文件位置。Find: 实际搜寻硬盘查询文件名称。在这里,我们重点介绍Find命令:Find指令:1.命令功能:Find指令主要用来查找文件,在文件树(目录结构)中...

2016-05-23 10:48:00 237

转载 Linux -atime、mtime、ctime

Linux中,文件都有其自身的atime、mtime、ctime,在不同的命令下,各时间发生相应的改变。下面,我们来简单的介绍一下:atime (access time):表示最后一次访问文件或目录的时间。mtime (medify time):表示文件内容或目录最后被修改的时间。ctime (change time):表示文件所有者、权限或文件内容或目录...

2016-05-23 09:26:00 182

转载 自己实现的string的库函数

为了更好地理解string的各个库函数,现将几个常用的库函数用自己的方式实现如下:#include<iostream>using namespace std;#include<cassert>//求字符串的长度 (注:'\0'的长度不计算在内)int my_strlen(char* str){ if (str == NUL...

2016-05-18 17:50:00 114

转载 单链表的面试题

//常见面试题//1、逆序打印(从尾到头打印)单链表---------递归思想void PrintTailToHead(ListNode* pHead){ if (pHead != NULL) { PrintTailToHead(pHead->_next); printf("%d->", pHead->_data); }}void MeetingTest...

2016-04-21 16:54:00 141

转载 顺序表的实现

1 #include<iostream> 2 using namespace std; 3 #include<cassert> 4 typedef int DataType; 5 6 class SeqList 7 { 8 public: 9 SeqList() 10 ...

2016-04-17 17:15:00 98

转载 指针数组与数组指针

一、指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是“储存指针的数组”的简称。二、数组指针:首先它是一个指针,它指向一个数组。在 32 位系统下永远是占 4 个字节,至于它指向的数组占多少字节,不知道。它是“指向数组的指针”的简称。eg:下面哪个是数组指针,哪个是指针数组:A), int *p1[10];-->指针数组B),...

2016-04-14 11:18:00 93

转载 指针与数组

一、指针 1、 指针==地址;指针有两个值:自身值 与 指向的值 2、指针的四个方面:    1) 指针的类型 2) 指针指向的类型 3) 指针的值或指针所指向的内存区 ...

2016-04-13 16:41:00 113

转载 sizeof 与 strlen

一、sizeof sizeof(...)是运算符,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所占的空间,返回值跟对象、结构、数组所存储的内容没有关系...

2016-04-10 17:10:00 134

空空如也

空空如也

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

TA关注的人

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