当前位置: 技术问答>linux和unix
未名信号量不同进程间使用的问题
来源: 互联网 发布时间:2016-04-13
本文导语: 函数原型是这样的 int sem_init(sem_t *sem, int pshared, unsigned value); man结果中说,当pshared为非0的时候,这个信号量可以供任何可以存取这个信号量的进程使用,我想问一下,其它进程是如何取得这个信号量的存取权的?...
函数原型是这样的
int sem_init(sem_t *sem, int pshared, unsigned value);
man结果中说,当pshared为非0的时候,这个信号量可以供任何可以存取这个信号量的进程使用,我想问一下,其它进程是如何取得这个信号量的存取权的?能给个简单示例最好,^_^. 我看到的例子都是进程内共享用于多线程时用法。
int sem_init(sem_t *sem, int pshared, unsigned value);
man结果中说,当pshared为非0的时候,这个信号量可以供任何可以存取这个信号量的进程使用,我想问一下,其它进程是如何取得这个信号量的存取权的?能给个简单示例最好,^_^. 我看到的例子都是进程内共享用于多线程时用法。
|
An unnamed semaphore does not have a name. Instead the semaphore is placed in a region of memory that is shared between multiple threads (a thread-shared semaphore) or processes (a process-shared semaphore). A thread-shared semaphore is placed in an area of memory shared between by the threads of a process, for example, a global variable. A process-shared semaphore must be placed in a shared memory region (e.g., a System V shared memory segment created using semget(2), or a POSIX shared memory object built created using shm_open(3)).
|
这个信号量是建立在共享内存上,就可以让其他进程使用了。
|
我来个简单的例子:
process A:
process A:
#include
#include
#include
#include
#include
#include
#include
#define FILE_MODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)
int
main(int argc, char **argv)
{
int c, fd, flags;
char *ptr;
off_t length = sizeof(sem_t);
if(argc
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
站内导航:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!