当前位置:  技术问答>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的时候,这个信号量可以供任何可以存取这个信号量的进程使用,我想问一下,其它进程是如何取得这个信号量的存取权的?能给个简单示例最好,^_^. 我看到的例子都是进程内共享用于多线程时用法。

|
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:

#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.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3