>We can check for redirection without calling >GetFileInformationByHandle(), please consider the attached patch.
There are doubts:
1) we always use system function (GetFinalPathNameByHandleA or GetFileInformationByHandle); sometimes we use these two calls GetFinalPathNameByHandleA + GetFileInformationByHandle together (in freopen() case);
2) function GetFinalPathNameByHandleA is slower than GetFileInformationByHandle (2-4 times). Might be exist a cheaper way than GetFinalPathNameByHandleA?
I don't understand why this way better than using one call GetFileInformationByHandle...
Personally, I think it is more readable, although a comment should explain what we are checking.
GetFinalPathNameByHandleA() is slower when there is redirection, when there is no redirection it's similar or faster than GetFileInformationByHandle(), and that should be the most common case.