windows程序也有 标准输入,输出,错误3个文件描述符?
第一:windows也有文件描述符概念吗?
第二:windows程序 ,默认fopen的打开文件数512,
那么标准输入,输出,错误也是占用3个吧。
[解决办法]
1. 当然有, windows 有一套 POSIX 子系统, 是和 UNIX 兼容的.
2. 是的. 你可以用 printf("%d %d %d\n", fileno(stdout), fileno(stdin), fileno(stderr)); 看到他们占用了前 3 个描述符.
[解决办法]
错误,由于使用了GUI,windows程序是不支持标准输入输出的,即没有stdout、stdin、cout、cin这些东西。
必须使用标准C/C++的头文件,才能使用标准输入输出。
[解决办法]
startInfo.hStdInput = GetStdHandle(STD_INPUT_HANDLE);
startInfo.hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE);
startInfo.hStdError = GetStdHandle(STD_ERROR_HANDLE);