- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
要临时将 stdout
重定向到一个文件,我正在做:
printf("Before");
freopen_s(&stream, "test.txt", "w", stdout);
printf("During");
freopen_s(&stream, "CONOUT$", "w", stdout);
printf("After");
这行得通,但是这样做:
CONSOLE_SCREEN_BUFFER_INFO sbi = {0};
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &sbi);
似乎不再有效。它返回 false,GetLastError()
返回 6
,这会转换为消息“句柄无效”。使用 FormatMessage
。
关于为什么句柄可能无效的任何建议?有趣的是,printf
继续按预期工作并且 SetConsoleTextAttribute
甚至可以使用相同的句柄。
最佳答案
我发现了以下 here :
hConsoleOutput [in]
A handle to the console screen buffer. The handle must have the GENERIC_READ access right. For more information, see Console Buffer Security and Access Rights.
因此,我希望添加对重新打开的读取访问权限将恢复预期的功能,例如:
printf("Before");
freopen_s(&stream, "test.txt", "w", stdout);
printf("During");
freopen_s(&stream, "CONOUT$", "w+", stdout);
printf("After");
关于c - stdout 上的 freopen_s 导致 Windows 上的 GetConsoleScreenBufferInfo 出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1691285/
为了从文本文件中读取输入,我写了下面的代码: int main(){ int x; #ifndef ONLINE_JUDGE freopen("input.txt", "r", std
errno_t freopen_s ( FILE** pFile, const char *path, const char *mode, FILE *stream ); 这里,freopen_s 将
Visual C++ 报告传递给 fclose 的参数无效,该参数是 freopen_s 返回的 FILE*: #include #include int APIENTRY wWinMain(HI
要临时将 stdout 重定向到一个文件,我正在做: printf("Before"); freopen_s(&stream, "test.txt", "w", stdout); printf("Du
我是一名优秀的程序员,十分优秀!