c语言重定向stdout 到 /dev/null 及恢复

news/2025/2/22 19:27:37/

------------------------------------------------------------
author: hjjdebug
date:   2023年 07月 27日 星期四 17:49:49 CST
descriptor: c语言重定向stdout 到 /dev/null 及恢复
------------------------------------------------------------
#include <stdio.h>
#include <unistd.h>

#pragma GCC diagnostic ignored "-Wunused-variable"

int main()
{
    printf("hello\n");
    int save = dup( 1 ); //保存stdout 的fd, 返回的newfd 是3
    FILE *fp=freopen("/dev/null","w",stdout); // 重定向stdout 到 /dev/null, 则以后打印将不可见
    printf("world\n"); //文本将不会打印
    fflush(fp); // 清空fp 内容,否则恢复时"world"会打印到屏幕上
    // 如何恢复stdout ?
//    fclose(stdout); //freopen已经关闭过了,不能再关,否则出现段错误
//    stdout = fdopen(1, "w"); //reopen: 1 is file descriptor of std output
//    stdout = fdopen(STDOUT_FILENO, "w"); //STDOUT_FILENO = 1, 虽可打开, 但不能恢复打印
    int ret=dup2(save, 1 );//把保存的fd 恢复到1上, 恢复标准输出文件描述符, 返回值的newfd 是1
    printf("hello world\n"); //文本将会打印到屏幕上
    return 0;
}


http://www.ppmy.cn/news/991847.html

相关文章

Stable Diffusion ControlNet 完全指南

ControlNet 是 Stable Diffusion中的一种扩展模型&#xff0c;通过这种扩展模型&#xff0c;我们能够将参考图像的构图&#xff08;compositions &#xff09;或者人体姿势迁移到目标图像。 资深 Stable Diffusion 用户都知道&#xff0c;很难精准控制Stable Diffusion生成的图…

深入理解pytorch库的dockerfile

目录 0. dockerfile命令1. 使用指令的注意点3. 参考4. 存在的问题 0. dockerfile命令 ? 1 2 3 4 5 6 7 8 9 10 11 12 FROM # 基础镜像&#xff0c;一切从这里开始构建 MAINTAINER # 镜像是谁写的&#xff0c;姓名邮箱 RUN # 镜像构建的时候需要…

网络应用技术师技能考试试题(二)

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a; 小刘主页 ♥️努力不一定有回报&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️学习两年总结出的运维经验&#xff0c;以及思科模拟器全套网络实验教程。专栏&#xf…

华为OD机试真题 Java 实现【输出指定字母在字符串的中的索引】【2023 B卷 100分】,附详细解题思路

目录 专栏导读一、题目描述二、输入描述三、输出描述说明&#xff1a; 四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#x…

倍增与ST算法

倍增与ST算法 倍增倍增原理倍增法的局限例题 &#xff1a;国旗计划 (洛谷 P4155)例题题解带注释的代码 ST算法ST算法原理ST算法步骤ST算法应用场合例题 &#xff1a;【模板】ST表 (洛谷 P3865) 倍增 倍增原理 倍增法的局限 例题 &#xff1a;国旗计划 (洛谷 P4155) 例题题解 带…

黑苹果如何在macOS Sonoma中驱动博通网卡

准备资源&#xff08;百度&#xff1a;黑果魏叔 下载&#xff09; 资源包中包含&#xff1a;AirportBrcmFixup.kext/IOSkywalkFamily.kext/IO80211FamilyLegacy.kext/OpenCore-Patcher 使用方法&#xff1a; 1.将 csr-active-config 设置为 03080000 全选代码 复制 2.在 …

前端学习--vue2--1-基础配置

写在前面&#xff1a; 好久没写了&#xff0c;做实习每天上班都没啥时间写&#xff0c;1个半月前开始系统学习前端&#xff0c;然后做了半个月主要的前端实习了wk。也行&#xff0c;当复习了&#xff0c;后端也还是搞了点。 本文介绍vue2的一些基础和配置&#xff0c;配置只写…

无涯教程-jQuery - Select menu组件函数

小部件选择菜单功能可与JqueryUI中的小部件一起使用&#xff0c;它提供了可替换样式的选择元素。一个简单的选择菜单如下所示。 Select menu - 语法 $( "#menu" ).selectmenu(); Select menu - 示例 以下是显示选择菜单用法的简单示例- <!doctype html> &…