当前位置: 首页 > news >正文

11、UNIX系统中C语言的作业控制深入解析

UNIX系统中C语言的作业控制深入解析

1. 基础概念

在UNIX系统里,每个进程中的/dev/tty文件是与之关联的控制终端的同义词。它对于那些无论输出如何重定向,都要确保在终端上输出消息的程序很有用。系统中的某些进程(通常是系统启动时启动的守护进程)会使用ioctl系统调用(操作常量为TIOCNOTTY)来清除其控制终端。

进程组方面,在非伯克利版本的UNIX系统中,共享同一控制终端的一组进程被定义为一个进程组。在伯克利系统使用sh和旧的tty驱动时,这个定义同样适用,但由于它们都不支持作业控制,这里就不再深入讨论。而在伯克利系统中,可以使用setpgrp系统调用将进程放入任意进程组。C shell会将每个shell作业作为一个单独的进程组。每次启动一个进程时,csh会将该进程的进程组设置为其进程ID。对于管道,管道中的所有进程都被放入同一个进程组,即第一个派生进程的进程ID(实际上是管道中的最后一个命令)。

每个终端都与一个称为“特殊进程组”的进程组相关联。处于特殊进程组的进程被视为处于“前台”,可以从终端读取数据并接收键盘产生的中断;不在特殊进程组的进程则被视为处于“后台”,不能从终端读取数据,也不会接收键盘产生的中断。可以使用ioctl(fd, TIOCGPGRP, &pgrp)调用获取与终端关联的进程组,使用ioctl系统调用(操作常量为TIO

http://www.cnnetsun.cn/news/57129.html

相关文章:

  • 12、UNIX系统中的进程间通信详解
  • 15、UNIX文件系统:标准与快速文件系统解析
  • 17、UNIX系统下C语言编程的实用技巧与跨语言调用方法
  • 6、网络配置与服务管理技术解析
  • AutoGPT退休生活规划助手
  • 28、红帽 Linux 网络搭建与 Apache 服务器配置指南
  • 40、深入探索Perl:系统负载监控应用与高级技巧
  • 57、C/C++项目构建:依赖管理、自动化及常见问题处理
  • 40亿参数改写行业规则:Qwen3-4B如何引领轻量化AI应用新浪潮
  • 16、云服务与虚拟化技术深度解析
  • AutoGPT扩展插件生态展望:社区正在开发的新功能
  • 15、IT服务过渡管理:关键流程与策略解析
  • 8、云生活新手入门指南
  • 13、上网本视频与Zoho工具使用指南
  • Objaverse-XL实战指南:10个高效使用技巧
  • 8、实用脚本集合:拼写检查、温度转换、贷款计算与日程管理
  • 9、Unix 脚本实用技巧大揭秘
  • 24、Mac OS X 系统脚本实用指南
  • 52、运动与锻炼中的心理与领导因素解析
  • 62、体育心理学研究成果综述
  • 63、运动心理学及相关领域研究成果综述
  • QT开发:框架概述、环境搭建与第一个程序
  • jtag和sw的区别
  • 网盘直链下载助手:三步突破下载限制的全攻略指南
  • 华硕设备性能优化:三步诊断法与效率倍增配置
  • Qwen3-Max-Preview引爆AI效率革命:多场景深度实测揭示性价比之王的核心竞争力
  • Zepp Life智能步数生成与多平台同步技术解析
  • 7、并行编程:Java线程、OpenMP与MPI
  • 9、量子计算:原理、算法与挑战
  • LXMusic智能音乐下载器:重新定义你的个性化音乐体验