#include
#include
#include
#include
#include /* 允許建立的子進程個數最大值 */
#define MAX_CHILD_NUMBER 10 /* 子進程睡眠時間 */
#define SLEEP_INTERVAL 2 int proc_number=0; /* 子進程的自編號,從0開始 */
void do_something();
main(int argc, char* argv[])
{
/* 子進程個數 */
int child_proc_number = MAX_CHILD_NUMBER;
int i, ch;
pid_t? child_pid;
pid_t pid[10]={0}; /* 存放每個子進程的id */
if (argc > 1) /* 命令行參數第一個參數表示子進程個數*/
{
child_proc_number = atoi(argv[1]);
child_proc_number= (child_proc_number > 10) ? 10 :
child_proc_number;
}
……
for (i=0; i
/* 填寫代碼,建立child_proc_number個子進程要執行
* proc_number = i;
* do_something();
* 父進程把子進程的id保存到pid[i] */
}
/* 讓用戶選擇殺死進程,數字表示殺死該進程,q退出 */
while ((ch = getchar()) != 'q')????? {
if (isdigit(ch))? {
/*? 填寫代碼,向pid[ch-'0']發信號SIGTERM,
* 殺死該子進程 */
}
}
/* 在這里填寫代碼,殺死本組的所有進程 */
return;
}
void do_something() {
for(;;)? {
printf("This is process No.%d and its pid is %d,
proc_number,? getpid());
sleep(SLEEP_INTERVAL); /* 主動阻塞兩秒鐘 */
}
}
補全代碼?????
那位大神會???