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 不同?代码有问题吗?