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

Android C++系列:Linux进程间关系

1. 终端

在UNIX系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进 程的控制终端(Controlling Terminal),在前面文章我们说过,控制终端是保存在PCB中的信 息,而我们知道fork会复制PCB中的信息,因此由Shell进程启动的其它进程的控制终端也是 这个终端。默认情况下(没有重定向),每个进程的标准输入、标准输出和标准错误输出都 指向控制终端,进程从标准输入读也就是读用户的键盘输入,进程往标准输出或标准错误输 出写也就是输出到显示器上。在前面信号文章中还提过,在控制终端输入一些特殊的控制键可以给前台 进程发信号,例如Ctrl-C表示SIGINT,Ctrl-\表示SIGQUIT。

init-->fork-->exec-->getty-->用户输入账号-->login-->输入密码-->exec-->shell

文件与I/O文章中提过,每个进程都可以通过一个特殊的设备文件/dev/tty访问它的控制终 端。事实上每个终端设备都对应一个不同的设备文件,/dev/tty提供了一个通用的接口,一 个进程要访问它的控制终端既可以通过/dev/tty也可以通过该终端设备所对应的设备文件来 访问。ttyname函数可以由文件描述符查出对应的文件名,该文件描述符必须指向一个终端 设备而不能是任意文件。下面我们通过实验看一下各种不同的终端所对应的设备文件名。

#include <unistd.h> 
#include <stdio.h>
int main() {printf("fd 0: %s\n", ttyname(0)); printf("fd 1: %s\n", ttyname(1)); 
http://www.lryc.cn/news/396319.html

相关文章:

  • 使用bypy丝滑传递百度网盘-服务器文件
  • 关于Python的类的一些理解
  • WEB安全基础:网络安全常用术语
  • ubuntu防火墙指定端口开放设置
  • Python OpenCV 教学取得视频资讯
  • 高频面试题基本总结回顾1(含笔试高频算法整理)
  • 【回溯+双指针算法题记录】回文字符串汇总
  • 【AI资讯早报】AI科技前沿资讯概览:2024年7月10日早报
  • DDR3 SO-DIMM 内存条硬件总结(一)
  • 磁力搜索引擎是什么?为什么有些资源喜欢用磁力链接?
  • Vue基础--v-model/v-for/事件属性/侦听器
  • 『大模型笔记』GraphRAG:用于复杂数据发现的新工具现已在GitHub上发布
  • LabVIEW机器视觉技术在产品质量检测中有哪些应用实例
  • 【Linux】多线程_2
  • 58、基于径向基神经网络的曲线拟合(matlab)
  • 3.上传图片(阿里云空间,oss验证)
  • 仪表板展示|DataEase看中国:2023年中国新能源汽车经济运行情况分析
  • “Numpy数据分析与挖掘:高效学习重点技能“
  • 百川工作手机实现销售管理微信监控系统
  • RAG 工业落地方案框架(Qanything、RAGFlow、FastGPT、智谱RAG)细节比对!CVPR自动驾驶最in挑战赛赛道,全球冠军被算力选手夺走了
  • 华为防火墙 拓扑搭建1
  • Linux 利用命名空间创建一个自己的“容器“
  • RAG的学习与实践——LangChain和LlamaIndex学习笔记
  • Python爬虫原理以及3个小案例(源码)
  • Vagrant配合VirtualBox搭建虚拟机
  • Elasticsearch 建议(Suggesters):实现自动补全和拼写检查
  • 部署过docker后,防火墙firewall与iptables的基本指令
  • 华为 RIP 协议中 RIP 兼容版本、RIPv1、RIPv2 在收发 RIP 报文时的区别
  • 深度学习pytorch多机多卡网络配置桥接方法
  • 服务器信息获取工具