У меня есть сообщение, генерируемое вызывающим абонентом exec()
или system()
или popen()
, и вы хотите передать его дочернему процессу. Изменить env - один из способов, но в многопоточной программе изменение env на putenv()
или setenv()
небезопасно. Мне не разрешено передавать его argv
дочернего процесса.Передача информации для системы() в многопоточной программе
Написание чего-то в каком-либо файле является одним из вариантов, но как мы можем определить, какое конкретное сообщение передается от какого родителя и предназначено для какого ребенка? Один из способов - добавить родительский pid к сообщению, и ребенок может найти сообщение с ppid-сопоставлением. Но когда несколько потоков вызовут popen()
, будет несколько сообщений с одним и тем же pid.
На каком языке вы владеете? Думаю, C? Ответ зависит от языка: например, у Python есть параметр 'env' для' popen() '... – EOL
Да, я использую C.thx – user1200759