Linux
文章平均质量分 58
trajectoryofbird
这个作者很懒,什么都没留下…
展开
-
Linux中与信号量有关的函数调用 semget, semop, semctl
信号量是一种用于对多个进程访问的临界资源进行控制的一种机制。简单来说,信号量的实质是一个整型计数器,当信号量为非负值时,它表示可供访问的临界资源的单元个数;当信号量的值为负时,它表示等待临界资源的进程数。与信号量有关的系统调用函数有三个,下面将分别介绍。1.**semget** : 信号量集的获取或创建 函数原型:int semget (key_t key, int nsem原创 2017-10-06 14:45:52 · 1402 阅读 · 0 评论 -
进程间通信之无名管道
无名管道,顾名思义,就是没有名字的管道,用于实现父子进程或兄弟进程之间的通信。实际上,内核创建无名管道的过程主要就是创建一个匿名文件的过程,内核会分配一个页面用作管道的缓冲区,即管道文件,它并不出现在磁盘或其他文件系统存储介质上,而只存在于内存空间,其他进程也无从访问这个文件。所以,所谓管道文件实质上只是一个用作缓冲区的内存页面,只是把它纳入了文件系统的机制,借用了文件系统的各种数据结...原创 2018-06-25 17:34:58 · 439 阅读 · 0 评论 -
进程间通信之有名管道
相对于无名管道而言,有名管道当然是有名字的,这样就可以使任何进程通过文件名或路径名与该管道挂钩。所以,有名管道可用于任意两进程之间的通信。 就有名管道和无名管道的实现来说,主要是在打开方式上有所不同,管道文件一旦打开(建立),以后两者对管道文件的读、写和关闭操作相同。int open (const char *path, int flags);那么,下面就来说一说有名管道的...原创 2018-06-25 19:18:07 · 266 阅读 · 0 评论 -
无名管道和有名管道的联系与区别
联系:通信数据只存在于内存缓冲页面中;都是半双工通信;区别:无名管道是无名的,有名管道是有名的;无名管道只能用于父子进程或兄弟进程之间的通信,而有名管道可用于任意两进程之间通信;无名管道是无形的,即无名管道的 inode 结构不是在磁盘上存储的,而是临时生成的,而有名管道的 inode 结点在磁盘上。...原创 2018-06-25 19:26:48 · 5597 阅读 · 1 评论