Chinaunix

标题: 请教:Linux下带名字的线程锁,替代WaitForSingleObject [打印本页]

作者: ruger    时间: 2010-03-22 12:21
标题: 请教:Linux下带名字的线程锁,替代WaitForSingleObject
做win32到linux程序下的移植,目前需要带名字的线程锁,以前用的Posix的信号量:sem_open,sem_post,sem_unlink等几个函数,发现WaitForSingleObject可以嵌套,面向进程的。不知道用什么合适了,请教高手一下,谢谢!
(貌似System V的信号量是不支持名字的,pthread直接面向进程)
作者: ruger    时间: 2010-03-22 15:00
System V的信号量是不支持名字,但是支持路径,但必须是一个确确实实存在的文件:
  1. NAME
  2.        ftok - convert a pathname and a project identifier to a System V IPC key

  3. SYNOPSIS
  4.        # include <sys/types.h>
  5.        # include <sys/ipc.h>

  6.        key_t ftok(const char *pathname, int proj_id);

  7. DESCRIPTION
  8.        The  ftok()  function  uses  the  identity of the file named by the given pathname
  9.        (which must refer to an existing, accessible file) and  the  least  significant  8
  10.        bits  of  proj_id  (which  must be non-zero) to generate a key_t type System V IPC
  11.        key, suitable for use with msgget(2), semget(2), or shmget(2).

  12.        The resulting value is the same for all pathnames that name the  same  file,  when
  13.        the same value of proj_id is used. The value returned should be different when the
  14.        (simultaneously existing) files or the project IDs differ.

  15. RETURN VALUE
  16.        On success the generated key_t value is returned. On failure -1 is returned,  with
  17.        errno indicating the error as for the stat(2) system call.
复制代码





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2