我需要传递unix参数来运行C文件,以便它仅一次打印某一行“ Hello World”。该文件使用fork多次打印该句子,但是在仅打印一次“ Hello World”句子之后,我需要发送一个kill信号来杀死进程。
我尝试了
./"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;
}
打印几次,然后挂起。