【发布时间】:2010-12-13 00:36:44
【问题描述】:
我需要将标准输出转发到不同的文件,以分离一些产生的打印并恢复到正常的标准输出。
我用freopen这样切换到文件:
char name[80];
memset(name, 0, 80);
strcpy(name, "./scripts/asm/");
strcat(name, m_func->m_name->m_value);
strcat(name, ".shasm");
freopen(name, "w", stdout);
它确实有效,但在过程结束时(注意标准输出以以前相同的方式多次重定向)我无法将其恢复为原始标准输出。我尝试了以下方法:
freopen("/dev/stdout", "w", stdout);
但它似乎不起作用..只是为了我在macosx上开发的信息。
我该怎么办?
提前致谢
【问题讨论】:
-
您可能想添加更多细节,当您执行最终的 freopen() 时会发生什么?它返回NULL吗?