0

夜人,

我有一个我认为是一个简单的问题,但不知道如何解决它:

我想创建一个多线程多用户应用程序,它将通过多个终端在同一台计算机上启动,例如游戏。

该应用程序应通过终端执行,例如

./foo

例如,在 3 之后,终端调用了这个,那么游戏应该开始:

1号航站楼:

./foo
Waiting for other users...

2号航站楼:

./foo
Waiting for other users...

3号航站楼:

./foo
Starting...

每次我从终端调用 ./foo 时,我只是看不到这样做的机制,它会创建另一个进程。我怎样才能让它“计算”它被调用的次数而不是创建另一个进程?如果有另一种方法(可能有),哪一种?

4

2 回答 2

1

没有,每次再次启动它都会创建一个新进程,但是您可以让程序创建一个 unix 套接字,然后所有下一个将连接到同一个套接字并以某种定义的方式相互通信由你。

于 2013-05-17T20:48:41.220 回答
0

这是 InterProcessCommunication 的指南:http: //beej.us/guide/bgipc/

有多种技术可以做到这一点:

  • 管道
  • 消息队列
  • 共享内存
  • 插座

有关每种技术的示例,请参阅指南。

于 2013-05-17T21:06:49.183 回答