isatty на Windows CE

Есть ли эквивалент isatty() в Windows CE? Другими словами, есть ли способ определить в коде, был ли перенаправлен stdin/stdout/stderr?


person krupan    schedule 29.05.2009    source источник


Ответы (1)


Вы можете вызвать GetStdIoPath (он находится в coredll.dll — он не задокументирован в MSDN, и я не уверен, есть ли он в каких-либо заголовках SDK, но вы всегда можете вручную объявить его как extern, и компоновщик его найдет).

Вот моя версия C# — при необходимости вы можете легко перенести ее обратно на C:

[DllImport("coredll.dll", SetLastError = true)]
public static extern int GetStdioPath(StdIoStream id, StringBuilder pwszBuf, int lpdwLength);

public enum StdIoStream
{
    Input = 0,
    Output = 1,
    ErrorOutput = 2
}
person ctacke    schedule 29.05.2009
comment
Я нашел GetStdioPathW() для wince и думаю, что смогу заставить его работать. Спасибо! Вот ссылка MSDN для справки: msdn.microsoft.com/en-us/library /aa908796.aspx - person krupan; 04.06.2009