易截截图软件、单文件、免安装、纯绿色、仅160KB

求助,关于linux下进程的互斥锁

linux环境下,g++4.33编译器。有几个进程共享一个参数,就需要互斥锁的帮忙,请注意,是进程而不是线程,而且是在linux下的,所以vc附带的createMutex肯定是不好用了,哪位达人能给点指教。
因为前面需要用到fork(),wait()函数,所以我选择了进程而不是线程,程序写到现在改起来又很麻烦。去查资料,不是vc下的互斥锁,就是linux下对线程的mutex。不知道线程的mutex对进程是不是也好用呢?
进程间可以用mutex,进程间通信用共享内存,在mutex初始化的时候第2个参数写成某个值就可以把mutex初始化到共享内存中(具体记不清了,你可以搜一下).

不过也不清楚你的这个参数是什么,想要怎么共享,现在的进程间通信是什么方式.还是写清楚点比较好.

mutex如果是创建在共享内存的,就可以锁不同进程。

是这样的,有一个寻路引擎,引擎下有一个函数叫 createRequest,当引擎每从上一层获得一个task,就会开启一个进程来运行createRequest,当然这个函数中也用到了子进程来控制等待时间和等待其他进程的信号等等。
而createRequest需要读写引擎下的一个路由表。
我现在的问题是,如何创建mutex,才能在不同进程读写路由表的时候对其进行保护。注意,是在linux下的,vc的库函数是不好用的。

可以写到共享内存里用mutex.
或者用信号量.
这个路由表如果是文件的话可以用fcntl.

是要用pthread_mutex_t locker;
然后pthread_mutex_lock(&locker);
解锁用pthread_mutex_unlock(&locker);么?
还是说需要别的语句来把mutex共享到内存里?问题是如果一个createRequest创建了一个mutex,那么再次调用createRequest就会再次创建mutex,那么一定会报错的。如何解决呢?

引用


相关问答:

linux环境下gethostbyname函数问题 - C/C++ / C语言

写了个测试程序如下
   
  struct hostent *hp; 
char AlarmDevIP[20];  
  int x2;

hp = gethostbyname("www.google.com");
if (hp)
{ ......

关于linux下socket编程的问题! - C/C++ / C语言

由于我才刚刚接触socket编程,自己写了一个简单程序,但就是在运行的时候出现段错误,无法解决,现在我把源代码贴出来,请各位大虾指正一下!谢谢!
#include<stdio.h>
#include<stdlib.h>
#include& ......

是选win2008还是suse linux、redhat、centos,犹豫中

引用内容vsking 2009-12-25 22:56:52
现在是win2008和iis8的时代了,不要还停留在iis5时代,win2008被评为十佳操作系统之首不是偶然的,你要是..
我的问题是:
最近想买个服务器,看了dell上的系统定制选择,一些 ......

c语言实现linux time相关函数 - C/C++ / C语言

现在需要在一个嵌入式系统中实现时间函数,编译器未提供time库函数,请问大家如何用c语言实现时间函数啊?
年月日时分秒 到 整数秒(从1970年开始) 之间的相关转换啊
类似mktime 和localtime的功能,谢谢
mktime ......

FCK上传文件到linux服务器问题 - Java / Java EE

请我用FCK上传文件,在本地的windows机上测试可以,但部署到linux服务器上就上传不了文件,上传文件时一直卡在那里。望各位大虾指点,谢谢!
路过,帮你顶一下。。。。。。。。。。。。。。

上传文件的路径问题, ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号