Pthread Связь с параметром

TLDR: Я использую переменную типа void * для хранения указателя строки, как мне изменить значение строки?

ФОН
Домашнее задание с МПК возникло.
У меня есть два процесса: шеф-повара и официанты, в которых официанты дают некоторый вклад шеф-поварам (сидячие места, заказы за столом, готовые к оплате и т. Д.), А затем шеф-повар отправляет информацию соответствующему официанту (очевидно, что не все официанты обслуживать все столы одновременно).

Мое (по общему признанию, неуклюжее) решение:
1. Chef открывает FIFO-файл ‘chef’ для чтения

2. Официант открывает «шеф-повар», чтобы написать и записывает имя официанта, и открывает FIFO с этим именем для чтения.

3. Шеф-повар читает имя официанта и открывает FIFO для записи.

3.a. (На самом деле не имеет отношения к проблеме, с которой я сталкиваюсь). Официант отправляет информацию через ‘chef’, пока повар не закроет систему.

4. Во время ввода данных официантами иногда шеф-повар должен будет отправить информацию обратно. Когда шеф-повар вводит выходные данные, происходит проверка, чтобы определить, в какой выходной FIFO записывать.

ВОПРОС
У меня есть две темы, и мне нужно отправить строку обратно. Я передал указатель строки в качестве одного параметра, который мне дан (в данном случае он называется void * arg), затем, когда мне нужно отправить некоторую информацию обратно, я пытаюсь просто вставить строку в указатель, который я передал но до сих пор не нашел, чтобы сделать это. Итак, мой вопрос, как я могу сделать это таким образом?

0

Решение

Я закончил, используя следующее:

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

Затем модифицируется только измененный темп. Так как arg удерживает расположение строки в главном потоке, temp берет его, и тогда я могу поместить строку в temp. Таким образом, была установлена ​​связь между потоками, и я смог продолжить реализацию своего ужасного дизайна.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]