Я думаю, что основное правило заключается в том, что fork () охватывает процесс, который не делится данными с родительской программой, в то время как pthread_create () охватывает поток (в GNU / Linux, все еще процесс), который разделяетданные с родительской программой.
Подробнее см. http://www.makelinux.net/alp/032.
Таким образом, должна быть возможность заменить все вызовы fork () вызовами pthread_create (), поскольку последнийявляется более гибким.
Помните, что структура вашей программы должна быть изменена, если вы сделаете это изменение.Главным образом потому, что процесс fork () будет выполнять следующую инструкцию после системного вызова fork ().В то время как для pthread_create () вы должны явно инкапсулировать код нового процесса в функцию.
Итак, первый шаг должен заключаться в инкапсуляции кода, следующего за командой fork (), в отдельную функцию, которую выпозже перейдите к pthread_create ().