1.终端登录
2.网络登录
3.进程组
#include <unistd.h>
pid_t getpgrp(void);
|
Returns: process group ID of calling process
|
#include <unistd.h>
pid_t getpgid(pid_t pid);
|
Returns: process group ID if OK, 1 on error
|
#include <unistd.h>
int setpgid(pid_t pid, pid_t pgid);
|
Returns: 0 if OK, 1 on error
|
4.会话
建立会话
#include <unistd.h>
pid_t setsid(void);
|
Returns: process group ID if OK, 1 on error
|
返回会话的首进程的进程组ID
#include <unistd.h>
pid_t getsid(pid_t pid);
|
Returns: session leader's process group ID if OK, 1 on error
|
5.控制终端
6.tcgetpgrp,tcsetpgrp 和tcgetsid函数
#include <unistd.h>
pid_t tcgetpgrp(int filedes);
|
Returns: process group ID of foreground process group if OK, 1 on error
|
int tcsetpgrp(int filedes, pid_t pgrpid);
|
Returns: 0 if OK, 1 on error
|
#include <termios.h>
pid_t tcgetsid(int filedes);
|
Returns: session leader's process group ID if OK, 1 on error
|
7.作业控制
8.shell执行程序
9.孤儿进程组
例:
创建一个孤儿进程组
#include "apue.h"
#include <errno.h>
static void
sig_hup(int signo)
{
printf("SIGHUP received, pid = %d\n", getpid());
}
static void
pr_ids(char *name)
{
printf("%s: pid = %d, ppid = %d, pgrp = %d, tpgrp = %d\n",
name, getpid(), getppid(), getpgrp(), tcgetpgrp(STDIN_FILENO));
fflush(stdout);
}
int
main(void)
{
char c;
pid_t pid;
pr_ids("parent");
if ((pid = fork()) < 0) {
err_sys("fork error");
} else if (pid > 0) { /* parent */
sleep(5); /*sleep to let child stop itself */
exit(0); /* then parent exits */
} else { /* child */
pr_ids("child");
signal(SIGHUP, sig_hup); /* establish signal handler */
kill(getpid(), SIGTSTP); /* stop ourself */
pr_ids("child"); /* prints only if we're continued */
if (read(STDIN_FILENO, &c, 1) != 1)
printf("read error from controlling TTY, errno = %d\n",
errno);
exit(0);
}
}
分享到:
相关推荐
UNIX网络编程-第2卷-进程间通讯 UNIX网络编程-第2卷-进程间通讯
UNIX网络编程----进程间通信----卷2【第二版】源码
linux环境高级编程3-unix进程环境、进程控制和进程关系.ppt
UNIX环境高级编程一套电子书! 一共23部分19章。最后4部分为:函数原型、其它源码、习题答案、参考资料 如果您对某章节感兴趣,则下载非常方便! 如果此资源有侵权,请通知我,我会及时撤销下载!
unix实验关于进程通信的源码。。。。C编程实现无名管道通信和IPC通信
UNIX环境高级编程-13-精灵进程
本文为摘录,主要是在UNIX系统上的编程实践经验总结而成, 对UNIX程序员初学者来说是一个小小的经验, 仅供参考; 对UNIX老手来说则不值一哂, 请各位多多指 教.
本书全面深入地讲述了各种进程间通信(IPC)形式,它们是几乎所有复杂精致的UNIX程序的性能之关键。从网络编程角度看,理解IPC也是理解如何开发不同主机间网络应用程序的必要条件。本书从对Posix IPC和System V IPC...
卷2:进程间通信(第2版)》是一部UNIX网络编程的经典之作!进程间通信(IPC)几乎是所有Unix程序性能的关键,理解IPC也是理解如何开发不同主机间网络应用程序的必要条件。《UNIX网络编程.卷2:进程间通信(第2版)》从对...
UNIX网络编程第2卷-进程间通讯.pdf
笔记_UNIX环境网络编程卷二进程间通信_中文第二版
Unix网络编程第二卷 - 进程间通信.rar
UNIX网络编程第二卷-进程间通信-源代码 不同平台可能会遇到一些小问题 毕竟这些源代码有些年头了 关于我在fedora 11环境下编译出现的问题及解决办法见: ...
当进程执行完毕或者自己主动挂起后,操作系统就会重新计算一 次所有进程的总优先级,然后再挑一个优先级最高的把 CPU 控制权交给他。 我们用分蛋糕的场景来描述这两种算法。假设有源源不断的蛋糕(源源不断的时间)...
本书全面介绍了UNIX系统的程序设计界面—... 本书内容丰富权威,概念清晰精辟,一直以来被誉为UNIX编程的“圣经”,对于所有UNIX程序员—无论是初学者还是专家级人士—都是一本无价的参考书籍。 压缩包中是源代码。
UNIX网络编程 第2卷 进程间通信 把应用程序设计成一组彼此通信的小片断
UNIX环境高级编程一套电子书! 一共23部分19章。最后4部分为:函数原型、其它源码、习题答案、参考资料 如果您对某章节感兴趣,则下载非常方便! 如果此资源有侵权,请通知我,我会及时撤销下载!
两本经典书代码,希望对大家有用。 unix环境高级编程 unix网络编程.进程间通信
UNIX网络编程 卷2 进程间通信(第2版)