Я пытаюсь написать программу на С++, которая будет асинхронно запускать команды Linux и регистрировать обратный вызов для возвращаемых значений команды Linux. что я точно хочу, так это написать служебную функцию, которой я передам два параметра: один - команда linux, а другой - обратный вызов.
когда мы вызываем эту служебную функцию, она не должна блокировать программу и продолжать выполнение программы. но как только команды Linux будут выполнены, он вызовет обратный вызов, который мы передаем в качестве второго параметра.
Я пробовал функцию С++ system(). и попробовали заголовки boost.process для запуска команд Linux. но все они блокируют способ вызова вызовов Linux из С++.
Я новичок в этом типе программирования асинхронного + обратного вызова.
Программа должна выглядеть точно так же, как я пробовал в программах node.js, которые я использую в своих программах node.js. который очень хорошо работает для меня, ссылка, по которой я перехожу для этого, это http://www.dzone.com/snippets/execute-unix-command-nodejs
Помогите, пожалуйста, сделать это на С++. какие улучшения мне нужно сделать в системном вызове С++, который отлично работает для меня, но блокирует. или у нас есть какое-то прямое средство, доступное в C++ или библиотеке boost.
ПРИМЕЧАНИЕ. Я использую компилятор g++ 4.3. это не C++0x или C++11.
Спасибо, Абхишек