c - 实际示例使用 dup 或 dup2

标签 c file unix system-calls dup

我知道什么dup / dup2会,但我不知道什么时候会用到它。

有什么实际例子吗?

谢谢。

最佳答案

一个示例使用是 I/O 重定向。为此,您 fork 一个子进程并关闭 stdin 或 stdout 文件描述符(0 和 1),然后在您选择的另一个文件描述符上执行 dup(),该文件描述符现在将映射到最低的可用文件描述符,在这个情况 0 或 1。

使用它,您现在可以执行任何可能不知道您的应用程序的子进程,并且每当子进程在 stdout 上写入(或从 stdin 读取,无论您配置什么)时,数据都会写入提供的文件描述符上。

Shell 使用它来实现带有管道的命令,例如/bin/ls |更多 通过将一个进程的标准输出连接到另一个进程的标准输入。

关于c - 实际示例使用 dup 或 dup2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1720535/

相关文章:

c - 套接字编程中shutdown()函数中SHUT_RDWR的用途

python - 如何将文件转换为字典?

php - 上传文件然后将其复制到两个不同的目录?

linux - 符号链接(symbolic link)作为真实文件

csv - unix 连接分隔符

c - 在 fork() 程序中首先执行什么? parent 还是 child ?

C: 在 linux 中播放音频循环

c - 了解 C 中 const buffer 和 read() 的使用

循环依赖 - 结构和函数指针相互引用

c - 解决简单 C 扫描器中的 clang 警告