Форум программистов CodeGuru
20 Сентябрь 2018, 22:08:08 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Управление процессами  (Прочитано 18885 раз)
0 Пользователей и 1 Гость смотрят эту тему.
WXFMM
Новичок
*
Офлайн Офлайн

Сообщений: 1


Просмотр профиля
« : 28 Ноябрь 2009, 16:50:24 »

Необходимо реализовать функцию запуска и параллельного выполнения нескольких программ. Задаётся количество выполняемых программ и  набор их имён (пути к исполняемым образам). Исходный процесс завершается сразу после их порождения.
 Написать тестовую программу для проверки работоспособности разработанной функции.
Код:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
 

void fnc(char *);
 
int func(int progCount, struct prog_descriptor const * progz, pid_t * pids);
{
    pid_t pids[NPROC];
    int i;
 

pBufData = new char[strlen(argv[i])+1];

if(!pBufData)
{
printf("\nNot enough memory");
return;
}
strcpy_s(pBufData, strlen(argv[i])+1, argv[i]);


    for(i = 0; i < NPROC; i++) {
        pids[i] = fork();

        if(pids[i] < 0)
        {
            perror("fork");

            return 1;

        } else if(!pids[i]) {    /* дочерний процесс */
            fnc("ls");           /* выполнение программы ls */
        }
    }
 
 
void fnc(char *file)
{
    execl("/bin/ls", "ls", NULL);
 
    /* сюда попадем только в случае ошибки */

    abort();
}
Как здесь сделать так, чтобы количество процессов передавалось как параметр?
И с именами здесь, чувствую, косяки есть.
Помогите, пожалуйста, а то я уже на измене  Шпион
Записан
3V
Администратор
Ветеран
*****
Офлайн Офлайн

Сообщений: 1347



Просмотр профиля WWW
« Ответ #1 : 03 Декабрь 2009, 03:30:14 »

Так оно и передается, насколько я понял:

Код:
int func(int progCount, struct prog_descriptor const * progz, pid_t * pids);

progCount - думаю, как раз тот параметр.

З.Ы. а зачем ";" в конце ?
Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!