Написать программу, которая бы запускала в памяти еще один процесс и оставляла бы его работать в бесконечном цикле. При повторном запуске программа должна убирать запущенный ранее процесс из памяти (можно использовать 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);
Виртуальный выделенный сервер (VDS) становится отличным выбором
Доброго времени суток! Подскажите, как получить весь список файлов и папок содержащихся в библиотеке? Не могу разобраться, почему то функция...
Есть массив заранее подготовленных фраз, когда пользователь вводит что-то в input запускается обработчик keyup, который ищет в исходном массиве...