1、进程组
#include <unistd.h>
pid_t getpgrp(void); 返回值:调用进程的进程组ID
|
每个进程组都可以有一个组长进程。组长进程标识是,其进程组ID等于其进程ID
组长进程可以创建一个进程组,创建该组中的进程,然后终止。只要在某个进程组中有一个进程存在,则该进程组就存在,这与进程组长进程是否终止无关。
#include <unistd.h>
int setpgid(pid_t pid,pid_t pgid);
|
setpgid函数将pid进程的进程组ID设置为pgid。如果这二个参数相等,则由pid指定的进程变成进程组组长。
如果pid是0,则使用调用者的进程ID
在大多数作业控制shell中,在fork之后调用此函数,使父进程设置其子进程的进程组ID,并且使子进程设置自己的进程组ID。
这二个调用中有一个是冗余的,但让父子进程都这么做可以保证,在父、子进程认为子进程已进入了该进程组时,这确实已经发生。
waitpid函数则可以用来等待一个进程或者指定进程组中的一个进程终止。
2、会话
会话是一个或多个进程组的集合。
shell的管理线将几个进程编成一组。
proc1 | proc2 &
proc3 | proc4 |proc5
进程调用setsid函数建立一个新会话
#include <unistd.h>
pid_t setsid(void);
|
#include <unistd.h>
pid_t getsid(pid_t pid);
|
3、孤独进程组
一个其父进程已经终止的进程称为孤独进程,这种进程由init进程收养。
相关推荐
笔记_UNIX环境网络编程卷二进程间通信_中文第二版
### UNIX环境高级编程知识点 ...这些知识点涵盖了UNIX系统的各个方面,从基础的文件操作到高级的进程管理和文件I/O,以及标准实现和兼容性问题,为读者提供了一个全面理解UNIX环境高级编程的基础。
### UNIX高级编程知识点详解 #### 一、课程体系与学习目标概述 - **语言**: 本课程主要聚焦于两种主流的编程语言:C 和 C++。 - **算法**: 学习经典算法及其优化方法,提高解决复杂问题的能力。 - **数据结构**: ...
这些笔记可能包括安装必要的编译工具、配置环境变量、解决依赖问题以及实际编程示例等步骤,确保读者能够顺利地在实践中学习Unix编程的精髓。通过实践,你可以掌握Unix系统下的程序设计和调试技巧,这对于任何Unix或...
- **示例代码分析**:书中提供了大量的实际编程示例,覆盖各种UNIX编程场景,帮助读者理解和应用所学知识。 - **调试与故障排查**:教授如何使用调试工具和技巧,高效定位和解决编程过程中遇到的问题。 #### 5. ...
### Unix高级编程知识点详解 #### 一、Unix基础概念与特性 ##### 1.1 一切设备皆文件 在Unix及类Unix系统中,一切硬件设备都被视为文件,这种设计思想极大地简化了对硬件设备的访问和管理。例如,通过访问特定的...
UNIX 网络编程读书笔记 ...本篇读书笔记涵盖了 UNIX 网络编程的基础知识、并发服务器设计思想、TCP/IP 协议、Socket 编程、高级知识点和网络服务器设计等多个方面,对于学习 UNIX 网络编程的读者非常有价值。
### APUE读书笔记《UNIX环境高级编程第二版》知识点概览 #### 第一章 Unix基础 **1. Unix手册页** - 手册页是Unix系统中查询命令、函数等帮助文档的方式。 - 分类包括命令(1)、系统调用(2)、库函数(3)、特殊...
- **Unix手册页**:介绍如何使用`man`命令查询Unix/Linux系统中的命令、函数等的文档,是学习Unix编程的重要资料来源。 - **系统调用与库函数**:系统调用是应用程序与操作系统内核之间的接口,库函数则是对系统调用...
它为开发者提供了丰富的命令行工具和强大的编程环境,其中C语言是UNIX系统的核心编程语言。 C语言在UNIX系统中的地位至关重要,因为UNIX最初的许多核心组件就是用C语言编写的。C语言具有简洁、高效、灵活的特点,...
《高级Linux环境编程》或称为APUE(Advanced Programming in the UNIX ...这本书不仅涵盖了UNIX编程的核心概念,还包括了许多实用的编程技巧和解决方案,是一本非常适合在Linux环境下从事系统编程学习的参考书籍。
通过以上内容,我们可以了解到Unix系统编程涉及到多个方面的知识,从操作系统的基本概念到具体的文件操作、进程管理等高级主题。掌握这些知识点对于深入理解Unix系统的工作原理以及编写高质量的应用程序至关重要。
8. **库函数与系统调用**:C语言是UNIX编程的主要语言,系统调用(如上述的`open()`、`write()`等)是直接与内核交互的接口,而库函数(如`stdio.h`中的`printf()`)则提供更友好的编程体验。 9. **网络编程**:...
通过阅读《LINUX与UNIX SHELL编程指南》,读者不仅可以掌握Shell编程的基本技能,还能了解到一些高级特性,如数组、子shell、进程控制等。结合书中提供的实例,读者可以逐步提升自己的Shell编程能力,从而在Linux和...
这两者的编程接口有很高的相似性,因此学习Unix编程对理解Linux编程也非常有帮助。 本书可能包含以下内容: 1. **shell编程**:讲解Bash shell和其他Unix shell的基本语法,包括命令行参数、环境变量、重定向、...
Linux与Unix Shell编程指南读书笔记提供了深入理解和熟练掌握Shell脚本编写技巧的宝贵资源。Shell是Linux和Unix操作系统中的命令解释器,它不仅用于交互式地执行命令,还能编写自动化任务的脚本,极大地提高了系统...