【问题标题】:pthread Communication With the Parameterpthread 与参数通信
【发布时间】:2012-12-11 16:58:50
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: c++ void-pointers


    【解决方案1】:

    我最终使用了以下内容:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-08
      • 1970-01-01
      • 2021-02-15
      • 2012-06-07
      • 1970-01-01
      • 2011-02-09
      相关资源
      最近更新 更多