自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 进程的创建与可执行程序的加载

进程的创建与可执行程序的加载张颜(SA*****111) fork函数fork函数的特点概括起来就是“调用一次,返回两次”,在父进程中调用一次,子进程返回0,父进程返回子进程ID,出错返回-1;子进程是父进程的副本,子进程从父进程那得到了数据空间,堆和栈,但不是与父进程共享而是单独分配内存,即父进程与子进程有独立的地址空间。父子进程共享正文段。fork函数返回后,子

2013-05-30 22:40:19 858

转载 进程间通信之共享内存

/*共享内存允许两个或多个进程进程共享同一块内存(这块内存会映射到各个进程自己独立的地址空间) 从而使得这些进程可以相互通信。 在GNU/Linux中所有的进程都有唯一的虚拟地址空间,而共享内存应用编程接口API允许一个进程使 用公共内存区段。但是对内存的共享访问其复杂度也相应增加。共享内存的优点是简易性。 使用消息队列时,一个进程要向队列中写入消息,这要引起从用户地址空间向内核地

2013-05-23 20:37:23 608

转载 进程间通信之信号量

常见的SYSTEM V信号量函数(a)关键字和描述符      SYSTEM V信号量是SYSTEM V IPC(即SYSTEM V进程间通信)的组成部分,其他的有SYSTEM V消息队列,SYSTEM V共享内存。而关键字和IPC描述符无疑是它们的共同点,也使用它们,就不得不先对它们进行熟悉。这里只对SYSTEM V信号量进行讨论。      IPC描述符相当于引用ID号,要想使

2013-05-23 19:46:19 551

转载 static、const和extern关键字作用总结

-------------------------------------------STATIC---------------------------------------------static关键字至少有下列n个作用:  (1)函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值;  (2)在模块内的

2013-05-22 16:06:39 846

转载 C++空类,编译器默认产生的成员函数

class Empty{  public:  Empty(); // 缺省构造函数  Empty( const Empty& ); // 拷贝构造函数  ~Empty(); // 析构函数  Empty& operator=( const Empty& ); // 赋值运算符  Empty* operator&(); // 取址运算符  const Empty* o

2013-05-22 15:54:23 430

转载 C++虚函数表解析

转载自:http://blog.csdn.net/haoel/article/details/1948051/C++ 虚函数表解析陈皓http://blog.csdn.net/haoel  前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针

2013-05-22 09:39:49 384

转载 进程间通信之消息队列

/* *建立消息队列,并向里面添加消息 */#include #include #include #include #include #include #include #define MAX_TEXT 512#define MSG_KEY 335struct my_msg_st{ long my_msg_type; char some_text[MAX_TE

2013-05-21 22:48:39 370

原创 进程间通信之管道

最简单的例子(摘自APUE):/* *经由管道父进程向子进程传送数据 */#include #include #define MAXLINE 512int main(void){ int n; int fd[2]; pid_t pid; char line[MAXLINE]; if(pipe(fd) < 0) { printf("pipe error\n")

2013-05-21 22:42:19 382

原创 判断机器大端小端的方法

Big-Endian和Little-Endian的定义如下:1) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。2) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。举一个例子,比如数字0x12 34 56 78在内存中的表示形式为:1)大端模式:低地址 ----------------->

2013-05-20 23:13:27 616

原创 栈实现队列(模板)

/***用两个栈实现一个队列的功能**实现思路:假设两个栈A和B,且都为空;**可以认为栈A提高入队列的功能,栈B提高出队列的功能;**入队列:入栈A;**出队列:1.如果栈B不为空,直接弹出栈B的数据** 2.如果栈B为空,则依次弹出栈A的数据,放入栈B中,再弹出栈B的数据*/#include #include using namespace std;te

2013-05-19 23:51:25 418

原创 队列的链表实现

/***一个用链表形式实现的队列,它没有长度限制*/#include #include #include #include #define QUEUE_TYPE chartypedef struct QUEUE_NODE{ QUEUE_TYPE value; struct QUEUE_NODE *next;}QueueNode;type

2013-05-19 23:50:13 366

原创 栈的三种存储实现方式

/***用静态数组实现的堆栈*/#include #include #include #include #define STACK_TYPE char#define STACK_SIZE 256static STACK_TYPE stack[STACK_SIZE];static int top_element = -1;/***入栈操作*/void push(S

2013-05-19 23:48:23 696

原创 有序双链表的建立

/***把一个值插入到一个有序双链表,first是一个指向根节点的指针,**newValue是欲插入的新值。**返回值:如果欲插值原先已存在于链表中,函数返回0;**如果内存不足导致无法插入,函数返回-1;如果插入成功,函数返回1。*/#include #include typedef struct NODE{ struct NODE *left; struct

2013-05-18 16:44:41 641

原创 查找单链表的中间节点

/***节点值未知,只遍历单链表一次,求出中间节点**函数参数为指向单链表首节点的指针*/#include #include #define TRUE 1#define FALSE 0typedef struct NODE{ struct NODE* next; int value; }Node;/***返回链表的中间节点值*/in

2013-05-18 16:42:15 650

原创 单链表的排序

各种对单链表排序的方法:/***对给定单链表进行排序,函数参数为指向链表第一个节点的指针*/#include #include #define TRUE 1#define FALSE 0 typedef struct NODE{ struct NODE *next; int value;}Node;/***选择排序法,每次从当前遍历中找到最

2013-05-18 16:40:47 501

原创 单链表的逆置

笔试、面试能经常遇到:/***对给定的单链表进行逆置,函数参数**为指向单链表第一个节点的指针。*/#include #include #define TRUE 1#define FALSE 0typedef struct NODE{ struct NODE *next; int value; }Node;int listRever

2013-05-18 16:38:36 466

原创 有序单链表的建立

从C和指针这本书上搬来的:/***插入到一个有序地单链表,函数的参数是一个指**向链表第一个节点的指针以及需要插入的值。*/#include #include #define TRUE 1#define FALSE 0typedef struct NODE{ struct NODE *next; int value;}Node;int

2013-05-18 16:35:53 1539

原创 排序算法

简单选择排序:void SelectionSort ( int *Array, int len ){ int i, min, j, temp; for( i = 0; i < len - 1; i++ ) { min = i; /*假定起始位置为最小记录的位置*/ for( j =

2013-05-18 16:30:39 367

原创 计算机是怎样工作的

张颜(111) 实验一本文以一个简单的C程序为分析案例,分析其对应的.s汇编代码在CPU上的执行过程。首先给出C程序代码:int g(int x){return x+3;}int f(int x){return g(x);}int main(void){ return f(8)+1;}用gcc将test.c分别生成.cpp,.s,.o和ELF可执行

2013-05-15 23:28:32 738

空空如也

空空如也

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

TA关注的人

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