dev_open linux,linux 伪终端设备 /dev/ptmx

伪终端(pseudoterminal): ptmx, pts (伪终端master和伪终端slave).

/dev/ptmx用于创建伪终端主从设备对.当我们用open打开/dev/ptmx设备后, 返回主设备的文件描述符,

并且在/dev/pts/目录下创建一个伪终端从设备.

在成功打开/dev/ptmx后, 可以通过函数ptsname()来获取从设备的path.

想要打开open伪终端从设备,必须先使用主设备的文件描述符调用grantpt(), unlockpt().

当主设备和从设备都打开后, 在主设备写入的数据可以在从设备上读取, 在从设备上写入的数据可以在主设备读取.

Data written to the slave is presented on the master descriptor as input.  Data written to the master is presented to the slave as input.

伪终端应用:

当需要调用调用exece等函数执行系统命令时,

通过fork函数创建子进程, 在子进程中调用exece执行系统命令, 并且把子进程的stdout和stderr通过dup2重定向

到伪终端的从设备;而在父进程中通过读取伪终端的主设备来获取子进程支持系统命令的输出信息.

详细处理,请看android 中的函数android_fork_execvp_ext()

阅读(4434) | 评论(0) | 转发(0) |

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/571383.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

fetch git pull 切换_git fetch git pull

解析.git文件夹进入正题之前,我们先来看看.git文件夹1.config配置文件[core]repositoryformatversion 0filemode truebare falselogallrefupdates truesharedRepository group[remote "origin"]url https://xxx/xxx/xxx.gitfetch refs/heads/*:ref…

C语言对stm32f103程序,STM32F103WIFI程序C语言

《STM32F103WIFI程序C语言》由会员分享,可在线阅读,更多相关《STM32F103WIFI程序C语言(33页珍藏版)》请在人人文库网上搜索。1、实用标准文案 AP模式 AP的SSID : ATWAP11BG,LAUVAN(SSID),CHI AP的KEY: : ATWAKEYWPA2PSK,AES,22222222 AP模式&…

python之路_自定义属性、json及其他js补充

一、自定义属性 我们知道,在前端页面渲染的过程中,我们可能会需要用到一些后端传来的参数,这种参数的获取我们一般是通过模板语言渲染得到。但是当这些参数是在js文件中被用到(js代码若是单独以文件形式被引用,模板语言…

python中类型错误、计数不采用关键字的错误怎么改_Python设计错误

你要求链接或其他来源,但实际上没有。这些信息散布在许多不同的地方。什么才是真正构成设计错误的因素?您是只考虑语言定义中的语法和语义问题,还是包括诸如平台和标准库问题以及特定实现问题等实用问题?您可以说,从性…

C语言打印日历总结报告,C语言打印日历

应同学的要求,写了个日历,输入年份,输出12个月份的日历表,代码如下 :#includebool isLeap(int year){if((year%40 && year%100!0) || (year%4000))return 1;elsereturn 0;}void printCalendar(int year){int d…

电文的编码和译码c语言实现,电文的编码及译码.doc

数据结构课程设计题目:电文的编码与译码院系:班级:学号:姓名:2014-2015年度 第1学期目录一.题目:电文的编码与译码3二.设计目标3三.问题描述3四.需求分析3五&…

java中二进制怎么说_面试常用:说清楚Java中synchronized和volatile的区别

回顾一下两个关键字:synchronized和volatile1、Java语言为了解决并发编程中存在的原子性、可见性和有序性问题,提供了一系列和并发处理相关的关键字,比如synchronized、volatile、final、concurren包等。2、synchronized通过加锁的方式&#…

python 日记 day4。

1.为何数据要分类 数据是用来表示状态的,不同的状态应该用不同类型的数据来表示。 2.数据类型 数字 字符串 列表 元组 字典 集合 列表:列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的…

c语言复合语句开始标记字符,国家开放大学C语言程序设计A第一次形考任务及答案(2020年整理)(7页)-原创力文档...

;学 海 无 涯 ;;学 海 无 涯 ;学 海 无 涯 ;学 海 无 涯二、判断题(共 60 分,每小题 2 分。叙述正确则回答“是”,否则回答“否”)题目 21C 语言中的每条简单语句以分号作为结束符。对 题目 22C 语言中的每条复合语句以花括号作为结束符。错 题目 23在 C…

搜索不到投屏设备怎么办_电视投屏搜索不到设备解决方案

手机投屏电视想必许多人都用过,但是仍然有些人不会投屏,或者说投屏不成功。今天小编就给大家讲解,手机投屏电视,搜索不到设备怎么解决呢?在解决这个问题之前,我们先了解一下,手机投屏电视需要哪…

准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure(对于二分类问题)

首先我们可以计算准确率(accuracy),其定义是: 对于给定的测试数据集,分类器正确分类的样本数与总样本数之比。也就是损失函数是0-1损失时测试数据集上的准确率。 下面在介绍时使用一下例子: 一个班级有20个女生,80个男生。现在一个分类器需要…

js与c语言互相调用,Objc与JS间相互调用

过去3、4年都在进行跨平台的混合应用开发,但一直没有系统梳理跨平台技术的底层原理,趁新工作未正式入职,这里整理一下。跨平台的一种实现是基于webview。所谓webview,实质是在原生app中打开一个内嵌浏览器,具体到iOS平…

swift 拖动按钮_Swift - 单元格滑动按钮库SwipeCellKit使用详解1(基本用法)

在之前的两篇文章中我分别介绍了如何使用 iOS8和 iOS11提供的相关代理方法,来实现 tableView单元格滑动事件按钮:但它们局限性还是比较大的,前者只能实现尾部按钮,且按钮只能使用文字无法使用图片。而后者对系统版本又要求比较高。…

MySQL数据库优化(五)

MySQL配置优化 通过配置my.cnf使数据库达到优化的目的。 1、innodb的缓冲池配置 innodb_buffer_pool_size  通常配置服务器内存的60%~70% 2、innodb log缓存配置 innodb_log_buffer_size  这个不宜配置太大,因为日志缓存每秒刷新一次 3、配置缓冲池个数 innodb_…

qt用c语言编程 pdf下载文件,Qt 使用Poppler实现pdf阅读器的示例代码

开发环境 Qt5.5.1、Qt Creator 3.5.1Qt实现pdf阅读器和MFC实现pdf阅读器,其实原理都是差不多的。注意:这个是MinGW版本的Qt,也就是运行在GCC环境下的库,里面只包含 *.dll 和 *.a 。如果是Vistual Studio版本的Qt ,那么…

redis 分布式锁 看门狗_分布式锁Redisson的使用,看门狗机制

Redisson简介Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务。其中包括(BitSet, Set, Multimap, SortedSet, Map, List, Queue, BlockingQueue, Deque, BlockingD…

BZOJ 1018: [SHOI2008]堵塞的交通traffic

二次联通门 : BZOJ 1018: [SHOI2008]堵塞的交通traffic /*BZOJ 1018: [SHOI2008]堵塞的交通traffic麻麻这题玩我这题简直消磨人的意志写了一天了写一段玩一段直接写不下去什么时候恢复一下心情再写*/ #include <cstdio> #include <iostream>#define rg register in…

c语言二叉树的头文件叫什么,西安交大朱站立数据结构——使用C语言》头文件系列——二叉树.doc...

西安交大朱站立数据结构——使用C语言》头文件系列——二叉树本文为二叉链存储结构的二叉树操作实现&#xff0c;实现了二叉树的定义、插入数据、删除数据、撤销以及二叉树的打印、前序遍历、中序遍历、后序遍历等。本项目工程包含2个头文件(BiTree.h、BiTreeTraverse.h)和一个…

rfcv函数实现_OpenSSL AES_ctr128_encrypt()作为伪随机函数在RFC3711(SRTP)

128位的主密钥&#xff1a;E1F97A0D3E018BE0D64FA32C06DE4139112位输入矢量&#xff1a;0EC675AD498AFEEBB6960B3AABE616位计数器&#xff1a;0000喂奶时的级联将112位输入向量和16位计数器转换为AES_ctr128_encrypt()我是不是得到预期的输出附录B.3的RFC3711列出了。(根据RFC3…

linux/npm/git的简单操作

下面是命令操作的详细步骤&#xff0c;每一步都是相连接的&#xff1b;对于git的相关命令&#xff0c;包括了团队开发时候如何操作&#xff0c;以及QA如何测试的&#xff1b;都挺详细的&#xff0c;可能有注释的理解不太正确&#xff0c;可以进行补充&#xff1b; 也可以看着之…