В моей программе мне нужно вызвать подпроцесс * sub_prog *.Я делаю это с помощью системного вызова, например system("sub_prog arg1 arg2...");
.Достаточно просто;все работает правильно.
К сожалению, используемый мной суперкомпьютер не поддерживает порождение подпроцесса (из-за архитектуры нельзя использовать fork (), popen () и т. д. с MPI. Это просто факт.).Поэтому решение было бы сделать * sub_prog * (разделяемой) библиотекой и вызывать ее как библиотечную функцию, а не как подпроцесс.
Я создал общую библиотеку * libsub_prog.so * отлично.Проблема в том, что я хочу вызвать функцию * sub_prog *, т.е. я хочу вызвать main(argc,argv)
из sub_prog
.
Вопросы, касающиеся общих библиотек, обычно сосредоточены вокруг вызова функций-членов из общих библиотек.Но что, если я захочу вызвать саму функцию main ?
(я думал о переименовании * sub_prog * s int main
в другое имя, по сути превращая его main
в просто другоефункция-член. Но есть несколько глобальных переменных, определенных прямо перед int main
).Должен ли я поместить их в заголовок globals.h, войти и вручную вставить «#include globals.h» в каждый исходный файл?)
Спасибо всем заранее.