Запуск процесса в памяти в бесконечном цикле

207
02 ноября 2017, 07:05

Написать программу, которая бы запускала в памяти еще один процесс и оставляла бы его работать в бесконечном цикле. При повторном запуске программа должна убирать запущенный ранее процесс из памяти (можно использовать kill).

Обязательно использование такой функции как Fork().

Нашел подобный вариант, вопрос, как заставить созданный процесс работать в бесконечном цикле, а при повторном запуске программы удалить его:

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <spawn.h>
#include <sys/wait.h>
void test_fork_exec(void);
int main(void) {
  test_fork_exec();
  return EXIT_SUCCESS;
}
void test_fork_exec(void) {
  pid_t pid;
  int status;
  puts("Testing fork/exec");
  fflush(NULL);
  pid = fork();
  switch (pid) {
  case -1:
    perror("fork");
    break;
  case 0:
    execl("/bin/ls", "ls", (char *) 0);
    perror("exec");
    break;
  default:
    printf("Child id: %i\n", pid);
    fflush(NULL);
    if (waitpid(pid, &status, 0) != -1) {
      printf("Child exited with status %i\n", status);
    } else {
      perror("waitpid");
    }
    break;
  }
}

Также, интересует одна вещь, что делает эта строка.

execl("/bin/ls", "ls", (char *) 0);
READ ALSO
Исключить нажатие кнопок по событию keyup

Исключить нажатие кнопок по событию keyup

Всем приветЕсть такой скрипт

266
Библиотека документов Sharepoint

Библиотека документов Sharepoint

Доброго времени суток! Подскажите, как получить весь список файлов и папок содержащихся в библиотеке? Не могу разобраться, почему то функция...

361
Наиболее подходящее совпадение

Наиболее подходящее совпадение

Есть массив заранее подготовленных фраз, когда пользователь вводит что-то в input запускается обработчик keyup, который ищет в исходном массиве...

270