2016-11-01 3 views
0

Я создаю простой интерфейс клиент/сервер через трубы. Когда сервер получает запрос от клиента, он вилки для создания процесса обработчика.Как я могу поделиться массивом структур между родительским и дочерним процессами в C?

Я делаю грубую реализацию прямо сейчас, так что большая часть данных проводится в массив структур:

struct data{ 
    int value; 
    char* description; 
} 

struct data events[100]; 

мне нужно, после того, как дочерний процесс завершает свою работу (которая включает в себя редактирование структуры внутри массива, чтобы иметь значения и описания, переданные клиентом), отправить эти данные на сервер и обновить массив событий сервера [], так что, когда он снова разворачивается из другого запроса, fork имеет правильные данные в пределах массив.

Что я могу использовать для этого?

ответ

1

Shared memory это первое, что приходит на ум.

Или вы можете просто засунуть кусочки по трубе, которую вы уже утверждаете.

+0

Как я могу отправить массив структуры по трубе? – Ajv2324

+1

@ Ajv2324: 'write (pipe_fd, array, sizeof (array [0]) * num_items);' –