Le paquet boost :: asio contient des classes pour exécuter le fichier asynchrone io dans Windows en utilisant les ports d'achèvement d'E/S. À ma connaissance, il n'y a pas de support pour le fichier asynchrone io pour les autres plates-formes incluses dans le paquet asio.Etendre le fichier asynchrone io dans boost :: asio vers Mac OS X
Je me demande ce qu'il faudrait faire pour étendre asio avec un support de fichier asynchrone io pour au moins Mac OS X, mais aussi dans une certaine mesure Linux. Je suis surtout intéressé par ce qui devrait être fait du côté asio des choses, mais comme je ne suis pas très expérimenté avec la programmation Mac OS X, je ne suis pas dérangé par les pointeurs où trouver plus d'informations sur la façon de faire un fichier asynchrone. Mac OS X aussi - PBReadForkAsync est ce que je devrais regarder?
Mise à jour: J'ai enfin eu l'occasion de tenter de construire le fichier asynchrone io (boost extérieur :: asio) sous Mac OS X en utilisant aio_read/aio_write, mais je ne peux pas obtenir les données de rappel dont j'ai besoin (voir How to get user data for aio signal handler in Mac OS X).
Asio fonctionne sous Mac OS X oui, mais le fichier asynchrone io n'est pas disponible. Selon les docs: Boost.Asio inclut des classes ajoutées pour permettre des opérations de lecture et d'écriture synchrones et asynchrones sur des descripteurs de fichiers POSIX, tels que des tuyaux, des entrées et sorties standard et divers périphériques (mais pas des fichiers ordinaires). (http://www.boost.org/doc/libs/1_41_0/doc/html/boost_asio/overview/posix/stream_descriptor.html). – villintehaspam
Mise à jour de la question pour clarifier le fait que c'est seulement le fichier io du paquet asio qui est "manquant" pour les autres plateformes que Windows. – villintehaspam
Désolé, j'ai raté ça aussi. Je pense que la meilleure approche serait de traiter OS X comme un système POSIX, de cette façon vous obtenez aussi des Unixen et Linux génériques. Voir l'appel système 'aio_read (2)' et 'man aio'. Et puis peut-être soumettre la classe à Boost, parce que cela devrait vraiment être là. –