select Alternative für Plattformübregreifendes Programm



  • Hallo,

    bin gerade dabei ein Programm, das ich ursprünglich für Linux geschireben habe, umzuschreiben, damit es auch auf Windows läuft.
    Bin damit schon fast durch. Einzig eine Klasse für Netzwerkfunktionen muss ich noch portieren. Habe allerdings noch keine Alternative für select() gefunden, das ich unter Linux sowohl für die Überwachung der Sockets als auch für die STDIN verwende (wenn etwas eingegeben wird, schicke ich es auf den Socket und andersrum). Unter Windows funktioniert das MS select() nur mit Sockets.

    FD_ZERO(&inpFd);
    FD_SET(STDIN_FILENO, &inpFd);//Das geht nicht auf Windows weil select dort nur Sockets akzeptiert
    FD_SET(sockFd, &inpFd);
    if(select(sockFd+1, &inpFd, NULL, NULL, NULL) == -1){
    

    Wie würdet ihr das Plattformunabhängig lösen?

    Grüße



  • Kann boost asio das nicht?



  • Hallo,

    asio ist interessant, aber das Thema hier ist ja eher auf STDIN bezogen.
    Ein mögliche Lösung hab ich mir schon ausgedacht: In einem Thread auf eine Eingabe warten, und bei erfolgter Eingabe ein flag setzen. Dann habe ich eine Plattformunabhängige nichtblockierende Eingabeüberwachung. Sollte auch leicht umzusetzen sein.

    Grüße


Anmelden zum Antworten