freopen重定向stdin与stdout后如何恢复正常

简介:
函数定义如下:
FILE * freopen ( const char * filename, const char * mode, FILE * stream );


在windows下控制台的标准输出设备是 CON ,在linux下面则用 /dev/tty 来显示当前终端,标准的应该是 /dev/console ,但个人试验只有tty的情况下

才能成功。设置了set-user-id并将user 改成root后依然无法使用console完成输出,具体原因有待考证。

在windows环境下:

#include <stdio.h>  
#include <stdlib.h>  
  
int main(int argc, char *agrv[])  
{  
    freopen("ExampleIn","r",stdint);   
    freopen("ExampleOut","w",stdout);  
    /*       program        */  
    freopen("CON","r",stdint);  
    freopen("CON","w",stdout);  
    printf("succeed!/n");  
    return 0;  
}  

在linux环境下:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *agrv[])
{
	freopen("ExampleIn","r",stdint); 
	freopen("ExampleOut","w",stdout);
	/*             program              */
	freopen("/dev/tty","r",stdint);
	freopen("/dev/tty","w",stdout);
	printf("succeed!/n");
	return 0;
}

转自:http://blog.csdn.net/lstjsuperman/article/details/6407409
目录
相关文章
|
消息中间件 Cloud Native Serverless
RocketMQ 事件驱动:云时代的事件驱动的不同
本文深入探讨了云时代 EDA 的新内涵及它在云时代再次流行的主要驱动力,包括技术驱动力和商业驱动力,随后重点介绍了 RocketMQ 5.0 推出的子产品 EventBridge,并通过几个云时代事件驱动的典型案例,进一步叙述了云时代事件驱动的常见场景和最佳实践。
247891 122
RocketMQ 事件驱动:云时代的事件驱动的不同
|
7月前
|
JavaScript 前端开发 Docker
如何通过pm2以cluster模式多进程部署next.js(包括docker下的部署)
通过这些步骤,可以确保您的Next.js应用在多核服务器上高效运行,并且在Docker环境中实现高效的容器化管理。
813 44
|
5月前
|
存储 Java 数据挖掘
Java 中数组的多种定义方式
本文深入解析了Java中数组的多种定义方式,涵盖基础的`new`关键字创建、直接初始化、动态初始化,到多维数组、`Arrays.fill()`方法以及集合类转换为数组等高级用法。通过理论与实践结合的方式,探讨了每种定义方法的适用场景、优缺点及其背后的原理,帮助开发者掌握高效、灵活的数组操作技巧,从而编写更优质的Java代码。
201 0
|
运维 Kubernetes Serverless
|
12月前
|
Windows
7-3|windows删除目录下的所有文件的命令
7-3|windows删除目录下的所有文件的命令
|
SQL 安全 算法
数字堡垒下的暗流涌动——网络安全漏洞与信息安全的较量
【8月更文挑战第19天】在数字化浪潮汹涌澎湃的今天,网络安全和信息安全如同一座座坚固的数字堡垒,守护着信息时代的边疆。然而,在这看似坚不可摧的防线下,暗流涌动,网络安全漏洞层出不穷,成为不法分子窃取信息、破坏系统的秘密通道。本文将深入探讨网络安全漏洞的类型与成因,分析加密技术在防御中的关键作用,并强调提升安全意识的重要性,以期为读者呈现一场没有硝烟的网络攻防战。
|
存储 关系型数据库 MySQL
关系型数据库mysql数据文件存储
【6月更文挑战第15天】
392 4

热门文章

最新文章