将Stdout重定向到另一个程序的Stdin
Redirecting stdout to stdin of another program
我已经经历了大量的Google链接和这里的问题,以了解Pipping的工作原理我的第二个程序的stdin。
我正在尝试创建一个围绕文本字符,对其进行加密并将其放入字符串的程序。我的第二个程序应该采用该字符串并解密它。我了解创建管道所需的功能,但我不明白它是如何指向下一个程序的,我所看的所有源代码似乎都有父母和子女,而不是在其中第二个程序。
在两个程序的标准流之间建立管道是您如何启动程序的问题。如果一个人执行另一个(例如,fork()
/execlp()
),则父级将与pipe()
创建管道,而父和子女使用dup2()
将管道与适当的文件描述符相关联(在执行EXEC之前,在孩子的情况下执行EXEC)。
如果两个程序都没有启动另一个程序,则 do 启动它们的程序(通常是外壳)必须设置管道。
假设您在基于UNIX的操作系统中使用了Shell,则使用管道|
字符来创建此链接。例如:我想运行program1并将program1的标准输出重定向到程序2作为其标准输入。
program1 | program2
这是使用ls
获取目录内容的名称,然后将其输送到head -3
以获取前三个文件的名称的一个Linux示例。然后,我们将三个名称输送到tail -1
,以获取最后一个(或目录中的第三个文件的名称)。
ls | head -3 | tail -1
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- C++,系统无法执行指定的程序
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 重载操作程序时出错>>用于类中的字符串 memebr
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 试图在visual studio上用C++创建一个桌面应用程序
- 模板元程序查找相似的连续类型名称
- FFmpeg:制作一个应用程序比直接使用ffmepg更好吗
- 将两个独立的stdin重定向为程序的输入
- 如何分离以C++执行的 Java 应用程序的 stdin/stout/stderr 流
- 使用Python脚本传递CPP程序的STDIN
- 将Stdout重定向到另一个程序的Stdin
- C 程序需要STDIN的输入,但我想从Shell脚本中输送/发送这些输入
- 为什么 read() 在管道连接到使用 boost::asio for STDIN/STDOUT 的程序时,使用 EAG
- 测试使用 tty stdin 和 stdout 的程序
- 如何在c++中运行应用程序,并在windows中向其stdin写入和从其stdout读取
- 通过stdin和ostream向程序发送数据.(C++)
- 在Linux上,在Eclipse CDT中使用gdb调试C++应用程序,以及如何向stdin输入内容