pthread与参数通信

时间:2012-12-11 16:58:50

标签: c++ void-pointers

TLDR :我正在使用void *类型的变量来保存字符串指针,如何修改字符串的值?

背景 已经出现了IPC的家庭作业。
我有两个过程,厨师和服务员,服务员给厨师们一些意见(参加派对,餐桌订单,准备结账等),然后厨师将信息发回给相关的服务员(显然并非所有服务员都同时为所有餐桌服务)。

我的(诚然笨重)解决方案:
1. Chef打开'chef'FIFO文件进行阅读
2。服务员打开'厨师'来编写和写入服务员的名字,并打开一个具有该名称的FIFO来阅读。
3。厨师读取服务员的名字并打开FIFO写。
3.A. (与我遇到的问题不太相关)服务员通过'厨师'发送输入,直到厨师关闭系统。
4。在服务员输入期间,厨师偶尔会发回信息。当厨师输入输出时,会进行检查以确定要写入哪个输出FIFO。

问题 我有两个pthread,需要发回一个字符串。我已经传递了一个字符串指针作为我给出的一个参数,(在这种情况下称为void * arg),然后当我需要发回一些信息时,我试图将字符串放入我通过的指针中但无论如何还没有找到这样做。所以我的问题是,我怎么能这样做呢?

1 个答案:

答案 0 :(得分:0)

我利用以下内容结束了:

string* temp = static_cast<string*>(arg);

然后修改刚刚修改过的temp。由于arg将字符串的位置保留在主线程中,因此temp接受了它,然后我可以将字符串放入temp中。因此建立了线程间通信,我能够继续实现我糟糕的设计。