| 热门文章 |
 |
|
| 编辑推荐 |
 |
|
|
|
|
|
作者:佚名
来源:不详 点击: 更新:2006-12-19
|
|
6.wait() 功能:等待一个子进程返回并修改状态 语法:#include #include pid_t wait(stat_loc) int *stat_loc; 说明:允许调用进程取得子进程的状态信息.调用进程将会挂起直到其 一个子进程终止. 返回值:等待到一个子进程返回时,返回值为该子进程号,否则返回值为 -1.同时stat_loc返回子进程的返回值. 例子:/*父进程*/ if (fork()>0) { wait((int *)0); /*父进程等待子进程的返回*/ } else { /*子进程处理过程*/ exit(0); } 7.waitpid() 功能:等待指定进程号的子进程的返回并修改状态 语法:#include #include pid_t waitpid(pid,stat_loc,options) pid_t pid; int *stat_loc,options; 说明:当pid等于-1,options等于0时,该系统调用等同于wait().否则该 系统调用的行为由参数pid和options决定. pid指定了一组父进程要求知道其状态的子进程: -1:要求知道任何一个子进程的返回状态. >0:要求知道进程号为pid值的子进程的状态. <-1:要求知道进程组号为pid的绝对值的子进程的状态. options参数为以比特方式表示的标志以或运算组成的位图,每个 标志以字节中某个比特置1表示: WUNTRACED:报告任何未知而又已停止运行的指定进程号的子进 程的状态.该子进程的状态自停止运行时起就没有被报告 过. WCONTINUED:报告任何继续运行的指定进程号的子进程的状态, 该子进程的状态自继续运行起就没有被报告过. WHOHANG:若调用本系统调用时,指定进程号的子进程的状态目 前并不是立即有效的(即可被立即读取的),调用进程并被 暂停执行. WNOWAIT:保持将其状态设置在stat_loc的进程在可等待状态. 该进程将等待直到下次被要求其返回状态值. 返回值:等待到一个子进程返回时,返回值为该子进程号,否则返回值为 -1.同时stat_loc返回子进程的返回值. 例子:pid_t pid; int stat_loc; /*父进程*/ if ((pid=fork())>0) { waitpid(pid,&stat_loc,0); /*父进程等待进程号为pid的子进程的返回*/ } else { /*子进程的处理过程*/ exit(1); } /*父进程*/ printf("stat_loc is [%d]\n",stat_loc); /*字符串"stat_loc is [1]"将被打印出来*/ 8.setpgrp() 功能:设置进程组号和会话号. 语法:#include pid_t setpgrp() 说明:若调用进程不是会话首进程.将进程组号和会话号都设置为与它 的进程号相等.并释放调用进程的控制终端. 返回值:调用成功后,返回新的进程组号. 例子:/*父进程处理*/ if (fork()>0) { /*父进程处理*/ } else { setpgrp(); /*子进程的进程组号已修改成与它的进程号相同*/ exit(0); } 9.exit() 功能:终止进程. 语法:#include void exit(status) int status; 说明:调用进程被该系统调用终止.引起附加的处理在进程被终止前全 部结束. 返回值:无 10.signal() 功能:信号管理功能 语法:#include void (*signal(sig,disp))(int) int sig; void (*disp)(int);
void (*sigset(sig,disp))(int) int sig; void (*disp)(int);
int sighold(sig) int sig;
int sigrelse(sig) int sig;
int sigignore(sig) int sig;
int sigpause(sig) &n上一页 [1] [2] [3] [4] [5] [6] 下一页
|
|
|