Rust之构建命令行程序(六):信息写入

开发环境

  • Windows 11
  • Rust 1.77.2 

  • VS Code 1.88.1

项目工程

这次创建了新的工程minigrep.

将错误信息写入标准错误而不是标准输出

此时,我们正在使用宏println!将所有输出写入终端。在大多数终端中,有两种输出:一般信息的标准输出(stdout)和错误消息的标准错误(stderr)。这种区别使用户能够选择将程序的成功输出指向文件,但仍将错误信息打印到屏幕上。

 println!宏只能打印到标准输出,所以我们必须使用其他东西打印到标准错误。

检查错误写入的位置

首先,让我们观察minigrep打印的内容当前是如何写入标准输出的,包括我们希望改为写入标准错误的任何错误消息。我们将通过将标准输出流重定向到一个文件来实现这一点,同时故意造成一个错误。我们不会重定向标准错误流,因此发送到标准错误的任何内容都将继续显示在屏幕上。 

命令行程序应该将错误消息发送到标准错误流,这样即使我们将标准输出流重定向到文件,我们仍然可以在屏幕上看到错误消息。我们的程序目前表现不佳:我们将看到它将错误消息输出保存到一个文件中!

为了演示这种行为,我们将使用》和文件路径output.txt运行程序,我们希望将标准输出流重定向到该文件路径。我们不会传递任何参数,这会导致一个错误: <

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值