Ситуация такова: я заставляю процесс открыть html-файл с браузером по умолчанию. Вот как это выглядит в моем случае:Получение PID процесса, созданного с помощью xdg-open
if ((pid=fork())==0) {
execlp("/usr/bin/xdg-open", "xdg-open", url, NULL);
/*if execlp failed, exit the child*/
exit(0);
}
Однако, я хочу, чтобы разжиться PID процесса (открыт браузер), так что я мог бы закрыть его и позже. Но я, кажется, не знаю, как я могу это получить. Пожалуйста, дайте мне знать, если у вас есть предложения.
Я так не думаю. В дочернем процессе будет запущен xdg-open. Тем не менее, браузер будет открыт в другом процессе, если я правильно пойму. Таким образом, PID будет отличаться. – elena
@elena: From 'man 3 exec':' Семейство функций exec() заменяет текущий образ процесса новым образцом процесса. «При выполнении замены нет необходимости создавать новый процесс, поэтому новый процесс -id назначается. – alk
Да, я прочитал страницу руководства. Однако, если вы посмотрите на мой пример: execlp («/ usr/bin/xdg-open», «xdg-open», url, NULL), вы увидите, что xdg-open - это замещенный образ процесса. xdg-open, в свою очередь, открывает браузер (поскольку URL-адрес является html-страницей). Браузер будет работать в новом процессе. Поэтому мне нужен PID этого процесса. – elena