Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.82/49: Рейтинг темы: голосов - 49, средняя оценка - 4.82
4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134

Найти файл по его pid и убить его

22.10.2010, 17:58. Показов 10458. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите написать программу которая находит файл по его pid и убивает его
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.10.2010, 17:58
Ответы с готовыми решениями:

Закрытие процесса по его PID и заморозка процесса по его имени или PID
Нужны две вот такие функции закрытие процесса по его PID и заморозка процесса по его имени или PID. В Делфи я новичок, по этому без помощи...

Как узнать PID батника и записать его в файл?
Есть батник, который поднимает некую программу, если она выключилась. Нам нужно уметь остановить этот батник удаленно, для чего надо...

Найти PID процесса и завершить его
Добрый день! Пишу минифильтр файловой системы и хочу блокировать доступ к определенным файлам (в kernel-mode). С этой задачей я справился,...

30
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
22.10.2010, 18:17
Цитата Сообщение от suv121 Посмотреть сообщение
находит файл по его pid и убивает его
файлы по pid`у не ищут, и тем более не убивают.
поясните.
0
4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134
22.10.2010, 18:22  [ТС]
ну вообщем нужно найти процесс по его Pid и удалить его
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
22.10.2010, 18:45
pid процесса - это и так его идентификатор. процесс убивается по pid`у.

или тебе нужно найти определить pid процесса зная его имя?
0
4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134
24.10.2010, 22:16  [ТС]
мне известно имя , по нему определить пид и убить процесс , это надо реализовать на си , чтобы когда в консоле я вызывал программу она спрашивала только название
через команды это можно сделать легко , через grep , а потом kill
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
24.10.2010, 22:29
Цитата Сообщение от suv121 Посмотреть сообщение
мне известно имя , по нему определить пид и убить процесс
выродил..наконец-то
а до сих пор, кто писал тот бред что выше? энергетический клон?
0
4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134
24.10.2010, 22:31  [ТС]
просто мне только щас уточнили задание
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
24.10.2010, 22:36
я так понимаю, системные утилиты нельзя вызывать из кода программы?
0
4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134
24.10.2010, 22:52  [ТС]
Цитата Сообщение от niXman Посмотреть сообщение
я так понимаю, системные утилиты нельзя вызывать из кода программы?
я думаю можно
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
24.10.2010, 23:02
это все упрощает.
читаем ман:
man pidof
из этого понимаем, что если выполнить в консоле: pidof process_name, то получим его pid. дальше убиваем его.
значит нам нужно выполнить:
C
1
FILE* f = popen("/bin/pidof process_name", "r");
из f читаем строку и приводим ее к целому.
все)
1
4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134
24.10.2010, 23:09  [ТС]
а как в си реализовать убийство процесса?
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
24.10.2010, 23:13
путем чтения "man 2 kill"

зы
не забываем жать на "спасибо"
1
4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134
28.10.2010, 22:18  [ТС]
а как на сделать чтобы я вводил в программу на си только имя процесса , а программа сама определяла пид и убивала?
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
28.10.2010, 23:39
найти процесс по имени и определить его PID.
процессы ищутся путем парсинга вывода ps, или путем чтения procfs
0
4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134
29.10.2010, 23:54  [ТС]
а можно пример кода

Добавлено через 10 часов 16 минут
вот что у меня получается
C
1
2
3
4
5
6
7
8
9
#include<stdio.h>
main(){
char a[10];
int b;
printf("enter name procces:\n");
gets(a);
b=getpid(a);
kill (b, SIGKILL);
}
какие библиотеки нужно ещё подключить и будет ли работать эта программа?
процесс название которого я должен ввести , это запущенная программа с бесконечным циклом
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
30.10.2010, 00:53
Цитата Сообщение от suv121 Посмотреть сообщение
getpid(a);
это что такое?
эта функция не принимает никаких аргументов. и возвращает она именно pid текущего процесса.

я же вам написал каким образом определяется pid по имени процесса.

Добавлено через 1 минуту
и возвращает она не int.
у какой балды вы этот код взяли?
0
4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134
30.10.2010, 10:16  [ТС]
а можете в мой код вставить нахождение пида по имени
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
30.10.2010, 11:48
Цитата Сообщение от suv121 Посмотреть сообщение
а можете в мой код вставить нахождение пида по имени
во первых - не понятно что это. вопрос?
во вторых - если это вопрос, не понятно почему бы вам самим этого не сделать.
в третьих - если вам западло, то мне стократно. из принципа.
0
4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134
30.10.2010, 12:32  [ТС]
я не понимаю как связать FILE* f = popen("/bin/pidof process_name", "r"); с введенным мною именем процесса и как преобразовать f к целочисленному виду
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
30.10.2010, 19:00
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

вот
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
 
int get_pid(const char* pname) {
   char buf[128] = "/bin/pidof ";
   char* p = &buf[0];
   strcat(buf, pname);
   
   FILE* f = popen(buf, "r");
   if ( !f ) {
      perror("popen():");
      return -1;
   }
   while ( !feof(f) ) {
      *p++ = fgetc(f);
   }
   pclose(f);
   return (p > &buf[0]) ? atoi(buf) : -1;
}
 
int main() {
   int pid = 0;
   char pname[128] = "\0";
 
   strcpy(pname, gets(pname));
   printf("pid: %d\n", (pid=get_pid(pname)));
 
   if ( pid != -1 ) {
      if ( kill(pid, SIGKILL) ) {
         perror("kill():");
      }
   } else {
      printf("process not found");
   }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.10.2010, 19:00
Помогаю со студенческими работами здесь

Завершение процесса по его PID
Пишу прожку, которая запускает и завершает процесы. Нужно что-бы она определила свой PID и по нему завершилась. Как грохнуть процесс по...

Состояние процесса по его pid
Подскажите функцию, которая возвращает состояние процесса.(выполняется, завершился и тд) Запускаю процесс функцией spawn(), которая...

listview и получение PID у его элементов
пишу диплом. Однин из его элементов это обозреватель процессов, с возможностью их завершения. Сами процессы отображаются в Listview, где 3...

Проверить завершился ли процесс зная его PID
Есть процесс родитель и потомок. Нужно сделать так, что бы если завершился один из них, то сразу завершался бы и второй. Как такое...

Убить таймер по условию его наличия
В программе есть таймер SetTimer(), убивается он в двух случаях. По завершении одной из задач, либо при выходе из программы. Как проверить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru