自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (2)
  • 收藏
  • 关注

原创 进程间通讯————消息队列

Linux支持system V 提供的进程间通信机制:消息队列、信号(semaphores)和共享内存。称为system V的IPC对象,可以通过系统调用(system call)对对象的创建者设置这些对象的存取权限。和文件的存取一样,这些对象的存取也要存取权限。内核(Kernel)为每一个IPC对象维护了一个结构体如下:struct ipc_perm { key_t __key; /* K

2017-05-31 16:40:28 316

原创 进程间通信————管道

进程间通信 首先,每个进程有各自不同的地址空间,任何一个进程都不能看到别的进程的系统资源。因此,进程间通信的主要方式是通过内核,首先在内核中开辟出一个缓冲区。把进程1的要沟通的数据写到缓冲区中去,然后通过进程2读走缓冲区的内容,这样才实现了进程间的通信(IPC)。 一、匿名管道 1.管道是一种简单的进程间通信方法,有IPC机制。通过调用pipe函数在内核中创建出缓冲区(管道) #inc

2017-05-26 17:24:39 391

原创 两个队列实现一个栈

这道题我们先应该搞清楚栈和队列这两种数据结构。队列:队列(queue)特点:先进先出(FIFO) 栈:(stack)特点:后进先出(FILO)。 思路: 创建一个栈,存放两个队列,一个队列用来存数据,一个队列中转数据。例如 1,2,3,4 在queue1中,要实现后进先出,则把前面三个数据移到queue2中,pop() 出queue1 ,最后再把queue2的数据移动到queue1中。

2017-05-23 16:33:03 202

原创 僵尸进程和孤儿进程

Linux下进程的状态: 1.R ( running ) 可执行行态。 2.S ( sleeping ) 可中断睡眠态。 3.D (disk sleep)不可中断的睡眠,也叫硬盘睡眠。 4.T (Stop)暂停或跟踪状态。 5.X (Dead)即将被销毁。 6.Z (zombie)僵尸状态,等待回收资源。 僵尸状态: 当一个进程退出时,它并不是完全消失,而是等到它的父进程通过调用wa

2017-05-18 14:58:47 328

原创 1+2+3+.........+N 的n种解法

1+2+3+…+N的几种求法。 一、普通循环 这个就不多说了,普通循环得到答案int GetSumByCir(size_t N)//普通循环{ int sum = 0; for (int idx = 1; idx <=N; idx++) { sum += idx; } return sum;} 二、递归解决 通过控制递归条件递归求解in

2017-05-17 16:13:44 2413

原创 Linux中文件描述符fb和文件指针FILE*的区别

1.文件描述符: linux中,当一个进程打开一个文件或者是创建一个新文件时,内核向进程返回一个文件描述符来标示该文件。文件描述符是一个非负整数,实际上它是一个索引,指向内核为进程所维护的一个文件记录表。 任何程序运行起来都会打开三个默认的流,标准输入流,标准输出流,标准错误流通常情况下对应的硬件为键盘,显示器,显示器。 三个流的文件标示符为 0,1,2 因为默认的三个流已经设置好,后

2017-05-11 10:57:43 1694

原创 如何创建一个只能在堆上产生对象的类

题目:如何创建一个只能在堆上产生对象的类一、分析: 1.定义一个只能在堆上产生对象的类,自然联想到new、malloc、calloc等动态分配内存的方法来产生对象。但在C++中,产生对象要调用构造函数,当然选择new来解决。 2.只能在堆上而不能在栈上创建对象,想到可以把构造函数定义成private或者protected 里面,防止在类外的栈空间上调用构造函数来创建对象。 3.可以定义一个成员

2017-05-11 00:10:25 824

原创 smart_pointer

引入: C++程序员最痛苦的莫过于对内存管理,没有像C#和Java那样的内存回收机制,C++程序员在复杂的程序中容易造成内存泄漏,即便是程序员非常小心,异常的产生也会造成部分内存泄漏。(由于异常而导致delete语句没有释放动态分配的内存)从而引出了智能指针(smart_pointer)。 什么是智能呢? 这种指针实质是一个包装了一个指针的类,通过RAII机制来自动释放内存。下面会详细介绍RA

2017-05-08 15:10:42 307

原创 C++——模板

在c++中为了提高代码的复用率,提出了模板。模板分为模板函数、模板类。一、模板函数 假如要实现一个加法函数使其可以通用任何类型。 当然能通过宏来实现 #define Add(a,b) ( (a)+(b) ) 但是宏的缺点显而易见。不能进行参数检测,安全性太差了。 还可以写出一下的函数模板。template<class T>//模板的参数列表T Add(T left, T right){

2017-05-04 11:57:44 202

linux shell脚本使用

shell

2017-08-26

C语言三子棋实现

C语言 编写三子棋

2016-12-26

空空如也

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

TA关注的人

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