WaitForMultipleObjects 不会在 Wine 中发出标准输入信号

fsd*_*kds 5 c windows winapi wine

当标准输入有东西时我想收到信号。下面的代码在 Windows 11 中按预期工作。

在 Windows 11 中,无论你按什么键,都会发出信号,但在 Wine 中,无论你按什么键,都不会发生任何情况。

#include <stdio.h>
#include <windows.h>
#include <io.h>

#ifndef STDIN_FILENO
    #define STDIN_FILENO 0
#endif

int main(){
    HANDLE handles[1];
    handles[0] = (HANDLE)_get_osfhandle(STDIN_FILENO);
    while(1){
        DWORD r = WaitForMultipleObjects(1, handles, FALSE, INFINITE);
        if(r != WAIT_OBJECT_0){
            printf("error WaitForMultipleObjects %d\n", r);
            return 1;
        }
        printf("stdin is triggered\n");
        return 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么 Wine 的行为与 Windows 11 不同?代码有问题吗?