steel98
1

Создание новых процессов, запуск внешних программ fork(), system

10.03.2010, 00:21. Показов 11829. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача запустить внешнее приложение и получить его ID, для того чтобы в дальнейшем отследить живо оно или нет. Почему-то получаю _всегда_ получаю ID нового процесса на две единицы меньше реального. Например, в программе получаю pid = 20002 , а через ps -ax вижу, что в системе он висит на 20004 :| С созданием новых процессов только начал работать, направьте на верный путь.

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
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <iostream>
#include <sys/types.h>
#include <signal.h>
 
using namespace std;
 
int main() {
 
int pid;
if ((pid = fork()) < 0) {
    cout << "Error\n";
}
else if (pid == 0) {
   /* cout << "Child\n";
    execv("./Program", NULL);
   */
}
else {
    system("mplayer track10.mp3 &");
}
if(kill(pid,0)==0){
cout << "Program Alive! PID: " << pid << "\n";
}
 return 0;
}
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.03.2010, 00:21
Ответы с готовыми решениями:

Параллельный запуск процессов с помощью fork(). Проверить код
Правильно ли я накидал параллельный запуск (в данном случае 10 ) процессов с помощью fork() ? ...

Fork создание процессов
Скажите, я правильно написал программку, создающую процессы? /*UTS*/ #include &lt;unistd.h&gt;...

Создание процессов, системный вызов fork()
Доброго времени суток, просьба разъяснить такой вопрос, написал такой код #include &lt;stdlib.h&gt;...

Запуск внешних программ из go
Не понимаю, как запустить из golang внешнюю программу Windows, например, notepad++.exe.

2
e-ros
26.11.2010, 12:55 2
надо mplayer ловить?
system() сама делает еще один дочерний процесс с помощью fork()
Evg
Эксперт CАвтор FAQ
21280 / 8302 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
26.11.2010, 15:34 3
Вместо system ... надо делать exec (или любой другой вызов из группы exec). Почитай по ним документацию, там маненько сложнее, чем в system. По другому твою постановку задачи не выполнить - system для таких целей не годится

Добавлено через 55 секунд
А... у тебя уже есть закомментированный exec. Т.е. надо дальше развивать эту мысль
0
26.11.2010, 15:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.11.2010, 15:34
Помогаю со студенческими работами здесь

Запуск внешних программ
Передо мной стоит задача: считывать данные из текстового файла построчно. В строках содержаться...

Запуск внешних программ
uses dos {$M 2048,0,0} begin swapvectors; exec(GetEnv('COMSPEC'),'/C batnik.bat'); ...

Debian Linux - Создание процессов (дед, отец, сын), fork();
Привет всем. Появилось у меня несколько вопросов по созданию процессов. Может будете ругаться, но...

Запуск внешних программ с PHP
Можно ли сделать так что бы на странице была допустим кнопка по нажатии на которую запускалась...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru