p; } /*父进程*/
printf("stat_loc is [%d]\n",stat_loc);
/*字符串"stat_loc is [1]"将被打印出来*/
8.setpgrp()
功能:设置进程组号和会话号.
语法:#include <sys/types.h>
pid_t setpgrp()
说明:若调用进程不是会话首进程.将进程组号和会话号都设置为与它
的进程号相等.并释放调用进程的控制终端.
返回值:调用成功后,返回新的进程组号.
例子:/*父进程处理*/
if (fork()>0) {
/*父进程处理*/
}
else {
setpgrp();
/*子进程的进程组号已修改成与它的进程号相同*/
exit(0);
}
9.exit()
功能:终止进程.
语法:#include <stdlib.h>
void exit(status)
int status;
说明:调用进程被该系统调用终止.引起附加的处理在进程被终止前全
部结束.
返回值:无
10.signal()
功能:信号管理功能
语法:#include <signal.h>
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)
int sig;
说明:这些系统调用提供了应用程序对指定信号的简单的信号处理.
signal()和sigset()用于修改信号定位.参数sig指定信号(除了
SIGKILL和SIGSTOP,这两种信号由系统处理,用户程序不能捕捉到).
disp指定新的信号定位,即新的信号处理函数指针.可以为
SIG_IGN,SIG_DFL或信号句柄地址.
若使用signal(),disp是信号句柄地址,sig不能为SIGILL,SIGTRAP
或SIGPWR,收到该信号时,系统首先将重置sig的信号句柄为SIG_DFL,
然后执行信号句柄.
若使用sigset(),disp是信号句柄地址,该信号时,系统首先将该
信号加入调用进程的信号掩码中,然后执行信号句柄.当信号句柄
&n