Sto scrivendo un'applicazione in C per linux, che utilizza 2 librerie di terze parti separate. Entrambe le librerie sono asincrone e usano select(). Forniscono inoltre un'API che restituisce i descrittori di file che aspettano. La mia intenzione è quella di passare questi in mio select() e quindi restituire il controllo a qualsiasi libreria quando sono impostati i loro valori fd.unix select() call: come combinare fd_sets?
Penso di averne scritto la maggior parte, ma ho problemi nel punto in cui i parametri select() sono interessati: Entrambe le librerie non forniscono singoli descrittori di file, ma puntatori alla loro lettura e scrittura di fd_sets. Ho bisogno di combinare il fd_set restituito da queste librerie in un fd_set per leggere, un fd_set per scrivere, ecc.
Qualche suggerimento su come posso combinare 2 fd_set in un fd_set risultante?
Addendum Siamo spiacenti! Avrei dovuto essere più chiaro .. queste librerie restituiscono solo gli fd_set ... Non conosco il numero di FD in ogni set in modo che possa fare un ciclo for e impostare ogni FD individualmente .. c'è un modo semplice per determinare questo dato solo un fd_set?
* Sto scrivendo un programma in C per Linux, che utilizza 2 librerie di terze parti separate. * Dovrebbe essere * Sto scrivendo un programma in C per Linux che usa due librerie di terze parti. * – mcandre
Sei sicuro che questa strategia funzionerà? In genere, tali librerie implementano il proprio ciclo di eventi e si aspettano di impostare i callback e il controllo del trasferimento su di essi esclusivamente. I buoni ti permetteranno di aggiungere i descrittori di file tuoi ai loro elenchi selezionati. In un programma a thread singolo non è facile avere 2 loop di eventi di controllo esclusivi, non importa 3. – bjg