Мне нужно передать аргументы unix для запуска файла C, чтобы он печатал определенную строку «Hello World» только один раз.Файл использует fork, чтобы напечатать предложение несколько раз, но мне нужно отправить сигнал уничтожения, чтобы завершить процессы после того, как предложение «Hello World» напечатано только один раз.
Я пытался
./"file name" sleep 4 KILL -9
Я не думаю, что здесь используется правильный синтаксис.
#include <unistd.h>
#include <stdlib.h>
#include <signal.h>
#include <stdio.h>
int main(int argc, char * argv[])
{
int m, i, c = 0;
pid_t pgid;
m = atoi(argv[1]);
for(i = 0; i < 3; ++i)
{
if(fork() > 0)
{
c = 1;
}
}
if(!c)
{
pgid = getpgid(getpid());
setpgid(getpid(), getpid());
kill(m * pgid, SIGINT);
}
sleep(3);
if(fork() > 0)
{
puts("Hello World");
}
return 0;
}
Он печатает несколько раз, а затем зависает.