Начните с system
вызова в другом потоке и добавляйте сложность только при необходимости.
Дополнительная сложность выполнения fork
/ exec
или использования библиотеки zip
стоит только усилий, еслиsystem
по какой-то причине недостаточно (т.е. вы хотите перенаправить как stdin
, так и stdout
дочернего процесса в ваш родительский процесс, либо хотите сжать файл в памяти для отправки его по сети без записи новогофайлы).