Bon, après moults efforts, SIGIO fonctionne.
Je n'avais pas activé le signal avec :
fcntl(client, F_SETFL, O_ASYNC | fcntl(client, F_GETFL, 0));
ni, et cela m'a vraiment étonné que ce ne soit pas réglé par défaut, défini le pid du receveur :
fcntl(client, F_SETOWN, getpid());
Mais c'est vrai aussi que sous Darwin, c'est plutôt mal documenté, et surtout, et c'est cela le plus ennuyeux, le man ne correspond pas toujours aux headers…
Bref, je vais maintenant pouvoir voir ce que je peux en faire de ce signal…
Partager