LINUX.ORG.RU

fork+exec в стиле system.


0

0

В ГУЕ есть две строки - одна путь к проге, вторая - аргументы (неопределённое количество). Если использовать system() без форка, то блокируется гуй, что очень-очень плохо. Если с форком, то создаётся лишний процесс, например:

+Parent

|

+-+Parent (форкнутый - лишний)

__|

__+--ChildProgram (вызванная system)

Когда ChildProgram завершается, то форкнутый Parent получает exit(), и всё нормально, НО!.. не красиво.

Как можно создать процесс, чтоб не заниматься парсингом аргументов для exec-a? Из головы чёрный дым идёт, простите, если вопрос глупый.



Последнее исправление: rip86oz (всего исправлений: 3)

Записать строку запуска в временный файл и запускать execl с этим файлом единственным параметром.

xcreatepixmap
()
Ответ на: комментарий от anonymous

+1, только надежнее все это через шэловский eval дергать

ananas ★★★★★
()
Ответ на: комментарий от anonymous

anonymous маг и чародей :) спасибо большое.

whoami, system(".\hello_world &") пока не пробовал... попозже.

rip86oz
() автор топика
Ответ на: комментарий от dimon555

dimon555, спасибо, возьму на заметку - в будущем пригодится наверняка, т.к. удобная функция, но тут от родительского процесса могут ответвится несколько дочерних, а искать для какого из них надо делать pclose() что-то не шибко хочется :) Странно, что на popen нет ссылок из fork и exec man-ов.

rip86oz
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.