- 博客(19)
- 收藏
- 关注
原创 进程的创建与可执行程序的加载
进程的创建与可执行程序的加载张颜(SA*****111) fork函数fork函数的特点概括起来就是“调用一次,返回两次”,在父进程中调用一次,子进程返回0,父进程返回子进程ID,出错返回-1;子进程是父进程的副本,子进程从父进程那得到了数据空间,堆和栈,但不是与父进程共享而是单独分配内存,即父进程与子进程有独立的地址空间。父子进程共享正文段。fork函数返回后,子
2013-05-30 22:40:19
907
转载 进程间通信之共享内存
/*共享内存允许两个或多个进程进程共享同一块内存(这块内存会映射到各个进程自己独立的地址空间) 从而使得这些进程可以相互通信。 在GNU/Linux中所有的进程都有唯一的虚拟地址空间,而共享内存应用编程接口API允许一个进程使 用公共内存区段。但是对内存的共享访问其复杂度也相应增加。共享内存的优点是简易性。 使用消息队列时,一个进程要向队列中写入消息,这要引起从用户地址空间向内核地
2013-05-23 20:37:23
656
转载 进程间通信之信号量
常见的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
605
转载 static、const和extern关键字作用总结
-------------------------------------------STATIC---------------------------------------------static关键字至少有下列n个作用: (1)函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值; (2)在模块内的
2013-05-22 16:06:39
907
转载 C++空类,编译器默认产生的成员函数
class Empty{ public: Empty(); // 缺省构造函数 Empty( const Empty& ); // 拷贝构造函数 ~Empty(); // 析构函数 Empty& operator=( const Empty& ); // 赋值运算符 Empty* operator&(); // 取址运算符 const Empty* o
2013-05-22 15:54:23
454
转载 C++虚函数表解析
转载自:http://blog.youkuaiyun.com/haoel/article/details/1948051/C++ 虚函数表解析陈皓http://blog.youkuaiyun.com/haoel 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针
2013-05-22 09:39:49
407
转载 进程间通信之消息队列
/* *建立消息队列,并向里面添加消息 */#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
391
原创 进程间通信之管道
最简单的例子(摘自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
405
原创 判断机器大端小端的方法
Big-Endian和Little-Endian的定义如下:1) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。2) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。举一个例子,比如数字0x12 34 56 78在内存中的表示形式为:1)大端模式:低地址 ----------------->
2013-05-20 23:13:27
751
原创 栈实现队列(模板)
/***用两个栈实现一个队列的功能**实现思路:假设两个栈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
470
原创 队列的链表实现
/***一个用链表形式实现的队列,它没有长度限制*/#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
387
原创 栈的三种存储实现方式
/***用静态数组实现的堆栈*/#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
764
原创 有序双链表的建立
/***把一个值插入到一个有序双链表,first是一个指向根节点的指针,**newValue是欲插入的新值。**返回值:如果欲插值原先已存在于链表中,函数返回0;**如果内存不足导致无法插入,函数返回-1;如果插入成功,函数返回1。*/#include #include typedef struct NODE{ struct NODE *left; struct
2013-05-18 16:44:41
685
原创 查找单链表的中间节点
/***节点值未知,只遍历单链表一次,求出中间节点**函数参数为指向单链表首节点的指针*/#include #include #define TRUE 1#define FALSE 0typedef struct NODE{ struct NODE* next; int value; }Node;/***返回链表的中间节点值*/in
2013-05-18 16:42:15
687
原创 单链表的排序
各种对单链表排序的方法:/***对给定单链表进行排序,函数参数为指向链表第一个节点的指针*/#include #include #define TRUE 1#define FALSE 0 typedef struct NODE{ struct NODE *next; int value;}Node;/***选择排序法,每次从当前遍历中找到最
2013-05-18 16:40:47
528
原创 单链表的逆置
笔试、面试能经常遇到:/***对给定的单链表进行逆置,函数参数**为指向单链表第一个节点的指针。*/#include #include #define TRUE 1#define FALSE 0typedef struct NODE{ struct NODE *next; int value; }Node;int listRever
2013-05-18 16:38:36
491
原创 有序单链表的建立
从C和指针这本书上搬来的:/***插入到一个有序地单链表,函数的参数是一个指**向链表第一个节点的指针以及需要插入的值。*/#include #include #define TRUE 1#define FALSE 0typedef struct NODE{ struct NODE *next; int value;}Node;int
2013-05-18 16:35:53
1618
原创 排序算法
简单选择排序: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
389
原创 计算机是怎样工作的
张颜(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
792
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人