Имеется хэш, где ключи - строки, а значения - ссылки на массивы строк.
Этот хэш - временный буффер, который
необходимо сбрасывать в файл, на консоль, в
syslog и куда угодно ещё по прошествии
заданного периода (60 сек).
Прога читает из сокета udp датаграммы и пишет некую инфу из них в этот хэш.
Операция одновременного сбрасывания буффера
в различные "устройства" достаточно длительная
и следовательно если делать её после
прошествия 60 секунд, то часть датаграмм
может потеряться.
Поэтому я хочу создавать новый процесс, в
котором и сбрасывать буфер, а одновременно
с старом процессе будет работать первичный
сбор данных в буфер(!!!)
ВОПРОС:
После выполнения fork - как два процесса
будут разделять память в которой хранится
хэш (помните про значения-ссылки в нём).
При чтении новой 60-ти секундной проции
данных я предварительно обнуляю хэш.
Не получится ли так, что обнулив хэш в
родителе, я автоматом обнулю его и в потомке
не успев ещё сбросить его в файлы???
после вызова fork() потомок имеет _копию_ данных.
любые изменения в памяти одним процессом не видны
в другом.
есть, конечно, shared mappings, но у данному случаю
это отношения не имеет.