Алёна
Алёна

Как отправить функцию в фон? (C++, Linux, SNMP)

Добрый вечер!
Уважаемые эксперты, есть ли в С++ (Linux) возможность отправить какую-то часть когда [например цикл while(1)] в фон, чтобы после этого код, откуда этот цикл был отправлен в фон, продолжил свое выполнение?
С помощью функции fork() необходимое мне реализовать не получается.. .

Ситуация следующая:
Я пишу агент Net-Snmp, который представлен в виде динамической библиотеки, при запуске демона snmpd, мой агент так же загружается. В агенте есть две функции: init_agent и handle_agent, в первой он инициализируется, а вторая - функция-обработчик запросов, которая приписывается агенту при инициализации. Так вот, я хочу чтобы этот агент вел лог (в который отправляются данные каждые 2 секунды) , делал я это так: в инициализации, в конце, pid = fork(), ..while(1) {...} ...(в этом ошибок нет, если проделать это в обычной программе - все работает на ура) , но такой способ не рабочий.. . Видимо проблема в том, что fork() создает копию родительского процесса, т. е. помимо цикла while(1) там есть еще и вторая функция-обработчик по уже обрабатываемому oid и т. д. , в следствии чего, агент snmpd просто валится после выполнения fork'a, т. е. лог начинает писаться, а snmpd падает.. .
Есть ли возможность отправить в фон только часть кода? Можно конечно написать отдельного демона, но плодить сущности - не выход.. .

Буду очень благодарен всем за помощь!

Filowie, спасибо, просто с потоками не работал, не знаю как это все устроено, сейчас почитаю

Похожие вопросы
Подскажите книжку по C++, про написания приложений для Linux
Как узнать длину функции в C++ ?
POMOGITE POGALYSTA C Debian Linux!
C++ использование нескольких функций.
C#. Написать функцию
Подскажите функцию в C ++
C++ передача функции или указателя на функцию в метод
Убрать фон с кнопки C#
C++ функция textattr
c++ калькулятор с функцией