Книга: Программирование для Linux. Профессиональный подход
Листинг 7.2. (get-pid.c) Получение идентификатора процесса из файла /proc/self
Листинг 7.2. (get-pid.c) Получение идентификатора процесса из файла /proc/self
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
/* Определение идентификатора вызывающего процесса
на основании символической ссылки /proc/self. */
pid_t get_pid_from_proc_self() {
char target[32];
int pid;
/* Чтение содержимого символической ссылки. */
readlink("/proc/self", target, sizeof(target));
/* Адресатом ссылки является каталог, имя которого соответствует
идентификатору процесса. */
sscanf(target, "%d", &pid);
return (pid_t)pid;
}
int main() {
printf("/proc/self reports process id %dn",
(int)get_pid_from_proc_self());
printf("getpid() reports process id %dn", (int)getpid());
return 0;
}
Оглавление статьи/книги
Похожие страницы
- Листинг 7.2. (get-pid.c) Получение идентификатора процесса из файла
- Листинг 10.1. (simpleid.c) Отображение идентификаторов пользователя и группы
- Сущность процесса миграции
- Получение статистики
- 2.1.3. Функция getopt_long()
- V Совершенствование процесса
- Эффективная работа с временными файлами сортировки
- Использование сервера Yaffil внутри процесса
- Единое имя файла параметров InterBase
- Параметры конфигурационного файла InterBase
- Chapter 11. Iptables targets and jumps
- 4. Стадии бизнес-процесса взаимодействия с клиентами