gpt4 book ai didi

c++ - 写入/dev/stdout : how to send EOF? 的程序

转载 作者:行者123 更新时间:2023-11-30 03:30:34 29 4
gpt4 key购买 nike

我有一个将数据写入文件的程序。通常,该文件在磁盘上,但我正在尝试写入 /dev/stdout。目前,当我这样做时,程序不会退出,直到我按下 Ctrl-C 。程序有没有办法发出输出已完成的信号?

编辑:

目前,磁盘文件是通过fopen(FILE_NAME)打开的,所以我现在尝试将/dev/stdout作为FILE_NAME传递>.

编辑 2:

命令行是

MY_PROGRAM -i foo -o/dev/stdout > dump.png

编辑 3:

看来这里的问题是stdout已经打开了,我正在第二次打开它。

最佳答案

FIFO 上的 EOF 条件(如果你从你的程序传输到其他东西,就是你的标准输出)是在没有文件句柄仍然打开以供写入时设置的。

在 C 中,标准库是 fclose(stdout),而系统调用接口(interface)是 close(1) —— 如果您使用 fopen (),您需要将它与 fclose() 配对。


如果您还执行单独的 outFile = fopen("/dev/stdout", "w") 或类似操作,那么您还需要关闭该拷贝:fclose(outFile) 以及 fclose(stdout)

关于c++ - 写入/dev/stdout : how to send EOF? 的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44862571/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com