( Linux ) получить имя процесса по его PID, или по PID получить имя процесса |
Здравствуйте, гость ( Вход | Регистрация )
( Linux ) получить имя процесса по его PID, или по PID получить имя процесса |
ЙаМайскЫйПчОЛ |
9.12.2009, 11:59
Сообщение
#11
|
Участник Группа: Участник Сообщений: 154 Регистрация: 10.7.2008 Из: СПб Пользователь №: 232 Спасибо сказали: 7 раз(а) Репутация: 5 |
prstatus_t
The entry containing this structure has a NOTE type of 1. This structure contains things of interest to a debugger from the operating system's u-area, such as the general registers, signal dispositions, state, rea- son for stopping, process ID and so forth. The prstatus_t structure is defined in <sys/procfs.h>. |
|
|
carveau |
9.12.2009, 13:54
Сообщение
#12
|
Студент Группа: Новичок Сообщений: 11 Регистрация: 9.12.2009 Пользователь №: 1292 Спасибо сказали: 0 раз(а) Репутация: 0 |
к сожелению пример использует старые библиотеки и хеадеры, у себя не смог найти запросы битовых констант для ioctl - PIOCPSINFO. . .
находил еще в интернете о <sys/sched.h> там вообще были готовые функции, передаешь параметром имя процесса в функцию а она тебе pid_t сразу.... #define PIOC ('q'<<8) #define PIOCPSINFO (PIOC|30) так же находил в инете битовое представление этих констант, подставлял, результата не дало, ioctl возвращал -1 |
|
|
ЙаМайскЫйПчОЛ |
9.12.2009, 14:28
Сообщение
#13
|
Участник Группа: Участник Сообщений: 154 Регистрация: 10.7.2008 Из: СПб Пользователь №: 232 Спасибо сказали: 7 раз(а) Репутация: 5 |
посмотри procfs.h
структура elf_prstatus поле pr_pid |
|
|
carveau |
9.12.2009, 14:32
Сообщение
#14
|
Студент Группа: Новичок Сообщений: 11 Регистрация: 9.12.2009 Пользователь №: 1292 Спасибо сказали: 0 раз(а) Репутация: 0 |
да есть, такое поле, дистрибутив у меня KUbuntu 9.04
счас надо понять каким системным вызовом заполнять ее !!! если все также ioctl такой REQUEST должен быть прошелся по <bits/ioctls-types.h> ничего похожего по смысле не нашел |
|
|
Kagami |
9.12.2009, 14:38
Сообщение
#15
|
Старейший участник Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: 9 |
Мм... а никто еще не предлагал посмотреть исходники утилиты ps?
|
|
|
ЙаМайскЫйПчОЛ |
9.12.2009, 15:00
Сообщение
#16
|
Участник Группа: Участник Сообщений: 154 Регистрация: 10.7.2008 Из: СПб Пользователь №: 232 Спасибо сказали: 7 раз(а) Репутация: 5 |
carveau, давай ещё раз тебе по имени процесса надо узнать работает он или нет?
И делать так тебе не нравиться?
|
|
|
carveau |
9.12.2009, 15:07
Сообщение
#17
|
Студент Группа: Новичок Сообщений: 11 Регистрация: 9.12.2009 Пользователь №: 1292 Спасибо сказали: 0 раз(а) Репутация: 0 |
да, так точно.
Вижу два варианта решения. 1) по имени процесса получить его PID, если процесса нет то и мы ни какого PID соответственно не получим 2) по PID получить имя процесса, обходим весь каталог /proc/номер - и есть список всех PID - ов в системе да делать так не нравится, потому что пишу дипломку, и преподователь не оценит легкость решения этой задачи !!! ДА есть плюс у этого метода, он будет не зависим от возраста линуксовых библиотек !!! |
|
|
ЙаМайскЫйПчОЛ |
9.12.2009, 15:08
Сообщение
#18
|
Участник Группа: Участник Сообщений: 154 Регистрация: 10.7.2008 Из: СПб Пользователь №: 232 Спасибо сказали: 7 раз(а) Репутация: 5 |
и ты не хочешь пробегать все дерево процессов с целью поиска в cmdline имени процесса??
Хотя мне кажется что это самый прямой способ... Любое решение которое ты найдешь ИМХО будет основанно на все том же переборе дерева процессов... но будет в красивой(может быть) упаковке в виде системной функции Сообщение отредактировал ЙаМайскЫйПчОЛ - 9.12.2009, 15:10 |
|
|
carveau |
9.12.2009, 15:11
Сообщение
#19
|
Студент Группа: Новичок Сообщений: 11 Регистрация: 9.12.2009 Пользователь №: 1292 Спасибо сказали: 0 раз(а) Репутация: 0 |
да, потому что все решение сводится к простому чтению из файла ! не оценят !
|
|
|
ЙаМайскЫйПчОЛ |
9.12.2009, 15:13
Сообщение
#20
|
Участник Группа: Участник Сообщений: 154 Регистрация: 10.7.2008 Из: СПб Пользователь №: 232 Спасибо сказали: 7 раз(а) Репутация: 5 |
О_о
Погоня за оценкой не доведет до бобра |
|
|
Текстовая версия | Сейчас: 15.1.2025, 22:32 |