0

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

背景 使用 IPC 的家庭作业已经出现。
我有两个流程,厨师和服务员,服务员向厨师提供一些输入(派对就座,餐桌订单,准备退房等),然后厨师将信息发送回相关服务员(显然并非所有服务员都是同时为所有桌子服务)。

我的(诚然笨拙)解决方案:
1. Chef 打开 'chef' FIFO 文件以读取
2. Waiter 打开 'chef' 以写入并写入服务员的名称,并打开具有该名称的 FIFO 以读取。
3. Chef 读取服务员的名字并打开 FIFO 进行写入。
3.a. (与我遇到的问题无关)服务员通过“厨师”发送输入,直到厨师关闭系统。
4. 服务员输入过程中,偶尔会有厨师发回信息。当厨师输入输出时,会进行检查以确定要写入哪个输出 FIFO。

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

4

1 回答 1

0

我最终使用了以下内容:

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

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

于 2012-12-11T17:47:59.933 回答