- 博客(7)
- 收藏
- 关注
原创 linux进程通信--信号量
信号量的功能 信号量自身并不具有通信功能,而是在当多个进程访问同一资源时,使用信号量实现多个进程之间的互斥与同步,因此信号量相当于数据锁功能。简单的说信号量就是解决不同进程访问共享资源时,避免出现问题而产生的一种机制。 信号量是一个特殊的变量,程序对其访问都是原子操作,且只允许对它进行等待P(-1)操作和发送V(+1)操作。最简单的信号量是只能取0和1的变量,这也是信号量最常见的一种形式,
2016-05-31 20:33:15 748
原创 linux进程通信--消息队列
消息队列是一种消息的链表,用户可以对消息队列写入信息,读取信息。与无名管道类似,可以实现不相关进程之间的通信,但不同的是消息队列可以实现对消息的查询读取。消息队列的实现包括创建或打开消息队列、添加消息、读取消息和控制消息队列这四种操作。实现消息队列的四种操作的函数int msgget(key_t key, int msgflg);int msgsnd(int msqid, const void
2016-05-31 10:19:07 660
原创 C语言的.和->的区别
刚遇到一个问题就是对结构体的访问时,我写的是.但是就是编译无法通过,后来改成-> 的形式,再次进行编译,发现奇迹发生了!通过了,通过查阅资料和看别人写的博客才明白原因,特此记录下来。
2016-05-30 23:27:43 530
原创 linux进程通信--有名管道
在前面介绍了无名管道的通信方式,无名管道主要用于具有亲缘关系的进程通信(包括父进程与子进程通信以及兄弟进程通信),本文介绍有名管道通信,那么可想而知,有名管道是用于任意两个进程之间的通信。特点可以实现任意两个互不相关的进程之间的通信;有名管道创建后,对其操作类似于文件操作,可以使用read,open,write等操作,并且有名管道可以在文件路径下显示。有名管道的数据严格执行先进先出的规则。下面
2016-05-30 19:31:46 733
原创 linux进程通信--无名管道
linux无名管道通信特点无名管道是半双工的通信方式,数据只能一方发送,另一方接收。无名管道只适用于亲缘关系的进程通信。数据的读出和写入:一个进程向管道中写的内容被管道另一端的进程读出。写入的内容每次都添加在管道缓冲区的末尾,并且每次都是从缓冲区的头部读出数据。#include <stdio.h>#include <stdlib.h>#include <unistd.h>void rea
2016-05-29 22:55:28 1843
原创 linux新建进程--fork
fork用于创建新进程,新进程与原进程具有从属关系,原进程称之为父进程,新建进程称为子进程,此进程还有其他什么关系呢? 1. 进程号 子进程的父进程应该为原进程,原进程的子进程应该为新建的进程号。 2. 返回值 使用fork新建进程返回值有三种,出错返回-1,0返回给子进程 ,大于0的正整数返回给父进程。 3. 数据共享 子进程会复制父进程的所有数据,在
2016-05-23 18:51:11 1124
原创 linux的main的参数传递
很多程序是需要适用main直接传递参数的,那么main的参数是怎么保存的呢。 如int main(int argc int *argv[]),这个时候执行命令 cp data1.txt /dev/udisk/ 此时参数保存的结果为 argc=3,argv[0]=”cp” argv[1]=”data1.txtx”,argv[2]=”/dev/u
2016-05-23 08:40:53 1710
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人