当前位置:  技术问答>linux和unix

POSIX:有名信号量 和SYStem V的信号量 你用哪个?

    来源: 互联网  发布时间:2017-03-15

    本文导语:  如题,我有点不太清楚就是,是不是Unix是不是这两种信号量都有,还有这两个信号量感觉可以互相取代,最后的问题就是POSIX命名信号量 在不同进程之间是不是通过信号量的文件名进行锁定的,也就是通过 sem_open(...

如题,我有点不太清楚就是,是不是Unix是不是这两种信号量都有,还有这两个信号量感觉可以互相取代,最后的问题就是POSIX命名信号量 在不同进程之间是不是通过信号量的文件名进行锁定的,也就是通过 sem_open(文件名),依靠这个文件名来锁定不同的进程? 而SYSTEM V的信号量 是通过 key_t来锁定的? 请教了

|


实际上SYSTEM V IPC应用更为广泛,使用也更为方便。
1. sem_open确定第一个参数name就让人大费周折,由于没有确定信号量名称的命名空间能否与文件系统相关,而文件系统就会涉及权限问题。

比如Solaris下sem_open("/sem1")能成功,在Digital Unix下却失败,除非有根目录(/)的写权限。

SYSTEM V IPC 通过 key_t 来区分,使用ftok,只要对文件系统有适当的访问权限,就能方便的命名IPC。

sem_t * sem_open (const char *name, int oflag, mode_t mode, unsigned value);

The name argument points to a string naming a semaphore object. It is unspecified whether the name appears in the file system and is visible to functions that take pathnames as arguments. The name argument conforms to the construction rules for a pathname. If name begins with the slash character, then processes calling sem_open() with the same value of name will refer to the same semaphore object, as long as that name has not been removed. If name does not begin with the slash character, the effect is implementation-dependent. The interpretation of slash characters other than the leading slash character in name is implementation-dependent. 

2. sem_wait成功后获取信号灯后,进程如果意外终止,将无法释放信号灯。
SYSTEM V IPC 提供 SEM_UNDO选项用于此目的

|
POSIX是标准,SYSTEM v不是,但是实际上大部分的系统都支持2者,从时代性上讲,posix是后来者,考虑的问题和兼容性更多一些。system v是比较旧的IPC标准。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • POSIX IPCs 和 System V IPCs
  • POSIX.1要求system忽略SIGINT和SITQUIT,阻塞SIGCHLD,求解释。UNIX环境高级编程 system函数
  • 请教POSIX 和 System V 实现的内存共享的相同及不同之处
  • 在linux下使用POSIX多线程库开发应用程序的时候需要定义宏_POSIX_C_SOURCE和_REENTRANT吗?
  • makefile中的D_POSIX_C_SOURCE是什么意思?
  • 关于什么是POSIX?
  • 请问以下操作系统中,支持posix的有哪些呢?
  • redhat linux支持什么标准? POSIX, ANSI,SVR4?
  • 谁有关于posix的详细资料
  • 请问那里能下载POSIX函数参考手册
  • aix支持POSIX线程标准吗?
  • LINUX如何调整POSIX消息队列大小
  • posix共享内存区
  • POSIX 文件系统 Libsqlfs
  • 哪里有POSIX标准下载(免费的)?
  • 请问怎样找posix文档?
  • 请问谁知道哪能找到“POSIX多线程程序设计”么?
  • 求,Programming with POSIX Threads by David Butenhof,多谢
  • 求助关于posix ipc 对象创建相关问题
  • 哪本书介绍mutex、POSIX 线程详解
  • SUSv2是一种*nix接口标准吗,就像POSIX.1-2001一样?
  • posix消息队列问题
  • redhat9.0下是不是不能用posix消息队列,如果有应包含什么头文件?


  • 站内导航:


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

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

    浙ICP备11055608号-3