Linux
文章平均质量分 67
zhang_yan2012
这个作者很懒,什么都没留下…
展开
-
计算机是怎样工作的
张颜(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 · 750 阅读 · 0 评论 -
进程间通信之管道
最简单的例子(摘自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 · 385 阅读 · 0 评论 -
进程间通信之消息队列
/* *建立消息队列,并向里面添加消息 */#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 · 372 阅读 · 0 评论 -
进程间通信之信号量
常见的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 · 561 阅读 · 0 评论 -
进程间通信之共享内存
/*共享内存允许两个或多个进程进程共享同一块内存(这块内存会映射到各个进程自己独立的地址空间) 从而使得这些进程可以相互通信。 在GNU/Linux中所有的进程都有唯一的虚拟地址空间,而共享内存应用编程接口API允许一个进程使 用公共内存区段。但是对内存的共享访问其复杂度也相应增加。共享内存的优点是简易性。 使用消息队列时,一个进程要向队列中写入消息,这要引起从用户地址空间向内核地转载 2013-05-23 20:37:23 · 618 阅读 · 0 评论 -
进程的创建与可执行程序的加载
进程的创建与可执行程序的加载张颜(SA*****111) fork函数fork函数的特点概括起来就是“调用一次,返回两次”,在父进程中调用一次,子进程返回0,父进程返回子进程ID,出错返回-1;子进程是父进程的副本,子进程从父进程那得到了数据空间,堆和栈,但不是与父进程共享而是单独分配内存,即父进程与子进程有独立的地址空间。父子进程共享正文段。fork函数返回后,子原创 2013-05-30 22:40:19 · 867 阅读 · 0 评论