Как преобразовать идентификатор окна X11 в идентификатор процесса

Я видел его в кодировании стандартов для C++, которые были похмельем от C, как будто у Вас нет RAII или другого автоматического управления памятью тогда, необходимо вымыться для каждого возврата, который или означает вырезание и вклейку очистки или goto (логически то же как 'наконец' на управляемых языках), оба из которых считают невоспитанностью. Если Ваши методы должны использовать интеллектуальные указатели и наборы в C++ или другой автоматической системе памяти, то нет веской причины его, и это становится всеми об удобочитаемости и большем количестве личного выбора.

9
задан Gilles 'SO- stop being evil' 6 January 2011 в 23:46
поделиться

1 ответ

In general, it's not possible to find out the PID of a process that created a window. It may be that the process is running remotely on a machine, and it may be that the machine doesn't even have the notion of processes and PIDs.

If you don't trust anybody stored this information when the client was originally created, you will need to trace the connections yourself. Find out what kind of connection (socket etc) the client was using, find out where that connection ends, and find out which process holds that end. How to do that (and whether it is possible at all) is highly operating system dependent.

6
ответ дан 4 December 2019 в 13:49
поделиться