关于进程通信同步函数的问题!

C、C++和Java语言
回复
stonecity
帖子: 86
注册时间: 2007-10-24 11:55
送出感谢: 0
接收感谢: 0

关于进程通信同步函数的问题!

#1

帖子 stonecity » 2007-11-09 16:35

用c写进程间同步通信的程序,可是怎么一些函数都 没有呢?(比如 set_concurrency()等等),man 手册也没有相关信息,请问应该安装哪些东西呢??

多多感谢!!
vupiggy
帖子: 89
注册时间: 2006-03-19 18:25
来自: FZ->TJ->PEK->AMS->MTL
送出感谢: 0
接收感谢: 0

#2

帖子 vupiggy » 2007-11-10 10:54

UNIX下进程同步传统上可以用管道,UNIX socket等等等等,但个人觉得最根正苗红的还是sys v信号量(semaphore)。系列函数是semget, semctl和semop,网上去找例子海了。
happy hacking;)
stonecity
帖子: 86
注册时间: 2007-10-24 11:55
送出感谢: 0
接收感谢: 0

#3

帖子 stonecity » 2007-11-10 18:24

set_concurrency()呢,我机子里怎么没有啊
vupiggy
帖子: 89
注册时间: 2006-03-19 18:25
来自: FZ->TJ->PEK->AMS->MTL
送出感谢: 0
接收感谢: 0

#4

帖子 vupiggy » 2007-11-10 22:27

老大,你这个set_concurrency是哪里看来的函数?是瘟到死平台下的?还是别人在pthread的原语上又包了一层的?非得用它么?你问是进程间通信,我可以负责任地说,进程间通信从来没有你说的这个函数。

如果用线程,倒是有个叫:pthread_setconcurrency 的。如果你想用man看到,要先装和posix有关的manpage。
stonecity
帖子: 86
注册时间: 2007-10-24 11:55
送出感谢: 0
接收感谢: 0

#5

帖子 stonecity » 2007-11-11 17:20

我把所有的manpage都装了,(执行命令 apt-get install manpage* 和 apt-get install doc*)可是还是没有pthread_setconcurrency的帮助啊?
急!!
vupiggy
帖子: 89
注册时间: 2006-03-19 18:25
来自: FZ->TJ->PEK->AMS->MTL
送出感谢: 0
接收感谢: 0

#6

帖子 vupiggy » 2007-11-11 23:55

stonecity 写了:我把所有的manpage都装了,(执行命令 apt-get install manpage* 和 apt-get install doc*)可是还是没有pthread_setconcurrency的帮助啊?
急!!
照说是在 manpages-posix-dev 这个包里的,如果你装了也没有就骂ubuntu的人去;)

问题是,你在这里急有什么用?不会google么?

懒得再理你了,这个问题也解决不了还编什么程序啊,和能力无关,态度是真够呛。
stonecity
帖子: 86
注册时间: 2007-10-24 11:55
送出感谢: 0
接收感谢: 0

#7

帖子 stonecity » 2007-11-12 22:08

在google查也没结果
vupiggy
帖子: 89
注册时间: 2006-03-19 18:25
来自: FZ->TJ->PEK->AMS->MTL
送出感谢: 0
接收感谢: 0

#8

帖子 vupiggy » 2007-11-12 23:44

stonecity
帖子: 86
注册时间: 2007-10-24 11:55
送出感谢: 0
接收感谢: 0

#9

帖子 stonecity » 2007-11-13 15:25

奇怪了,我的机子的#include<pthread.h>里就是没有这两个个函数!!!奇怪万分!!
vupiggy
帖子: 89
注册时间: 2006-03-19 18:25
来自: FZ->TJ->PEK->AMS->MTL
送出感谢: 0
接收感谢: 0

#10

帖子 vupiggy » 2007-11-13 23:21

我有点怀疑你去找了没有,打开pthread.h看了还是grep了?我在SuSE10.2和Ubuntu7.10的/usr/include/pthread.h下都看到了如下几行(位置都在420行左右):

#ifdef __USE_UNIX98
/* Determine level of concurrency. */
extern int pthread_getconcurrency (void) __THROW;

/* Set new concurrency level to LEVEL. */
extern int pthread_setconcurrency (int __level) __THROW;
#endif
stonecity
帖子: 86
注册时间: 2007-10-24 11:55
送出感谢: 0
接收感谢: 0

#11

帖子 stonecity » 2007-11-14 11:15

pthread.h 里到是找到这个函数了,不过没有man 啊?看不了帮助,不知道怎么用啊!!
我把所有的doc和manual都装了
vupiggy
帖子: 89
注册时间: 2006-03-19 18:25
来自: FZ->TJ->PEK->AMS->MTL
送出感谢: 0
接收感谢: 0

#12

帖子 vupiggy » 2007-11-14 22:51

嘿,楼上是不是来捣乱的?

"用c写进程间同步通信的程序,可是怎么一些函数都 没有呢?"  告诉你了进程间通信用semaphore。非要用什么set_concurrency不可?那好吧,用线程就用线程吧,告诉你用pthread_setconcurrency,你说是man找不到,贴了个手册页的链接给你,你又说pthread.h里没有这个函数,给你指出来那个函数明明在那里,你又绕回到man里找不到。FK

最后一次,

第一:检查一下自己用的是不是ubuntu,不是那还是上其它论坛上问问吧。

第二:dpkg -L manpages-posix-dev | grep pthread_setconcurrency 看看有没有:
/usr/share/man/man3/pthread_setconcurrency.3posix.gz,要是出错看看是不是因为manpages-posix-dev没有装 ,在那哭着喊着所有的doc和manual都装上了,就是不肯去看看这个包装没装,就是不肯说manpages-posix-dev到底装没装。上面的帖子已经告诉你了。

第三:要是这个包已经装了,/usr/share/man/man3/pthread_setconcurrency.3posix.gz仍然不存在,到牢骚抱怨版骂打包的人去,但是这可能性极小,没道理我的系统上这个包有这个文件而你却没有。

第四:要是明天还阻塞在这里,该干嘛干嘛去,天气不错出去走走,想想自己将来要干点别的什么,总之别混IT界,兴许你就有大成就了呢。

good luck
stonecity
帖子: 86
注册时间: 2007-10-24 11:55
送出感谢: 0
接收感谢: 0

#13

帖子 stonecity » 2007-11-15 22:23

楼上的打击人啊!我用的是debian4.0
zhanswer
帖子: 11
注册时间: 2007-11-22 23:25
送出感谢: 0
接收感谢: 0

#14

帖子 zhanswer » 2007-11-23 0:47

能回答这么多东西已经很不错了,人家写这么多字不用时间阿。
楼主别抱怨了。
回复

回到 “C/C++/Java”