![]() |
1
2
标准输入和标准输出(以及标准错误)流基本上可以指向任何I/O设备。这通常是一个终端,但也可以是一个文件、一个管道、一个网络套接字、一台打印机等。这些流将其I/O定向到什么,通常由启动进程的进程决定,可以是shell或像cron或apache这样的守护进程,但进程可以根据自己的意愿重定向这些流。
我将以Linux为例,但在大多数其他操作系统上,这些概念是相似的。在Linux上,标准输入和标准输出流由文件描述符表示
启动新流程的标准方法是致电
注意:为了清晰起见,我省略了错误处理
本例创建一个子进程并将其输出重定向到管道。该程序在子进程中运行(
这种重定向也可以从终端完成。运行命令时,可以使用重定向操作符告诉shell将命令标准流重定向到终端以外的其他位置。例如,这里有一种复杂的方法,可以使用类似sh的shell将文件从一台机器复制到另一台机器:
这将实现以下功能:
|
![]() |
Dai · bcrypt生成不正确的哈希-我的用户输入处理是否正确? 6 年前 |
![]() |
Wolfat · 无法从C中的管道执行读取? 7 年前 |
![]() |
Adonai · 在C中创建get string函数时出现问题 7 年前 |
|
Spring fancy · 为什么linux中不混合标准输入? 7 年前 |
|
Cryptosyche · C-使用fgets直到换行/-1[关闭] 7 年前 |
![]() |
Alexander Mills · 向下传递手柄管道 7 年前 |