Qu'ils utilisent des fonctions de leur OS est tout à fait compréhensible, mais il ne faut pas « justifier » ce fait en disant « de toute manière les systèmes BSD ont cette fonctionnalité ».
Par contre, du peu que j'ai pu voir du code des différents BSD, il y a généralement un gros effort d'encapsulation qui rend le code non seulement lisible, mais (relativement) facilement portable. Dans le cas de funopen, il est possible de reproduire la fonctionnalité, mais sans doute avec une efficacité moindre (puisque funopen peut « jouer » avec les différents flux, alors que faire la même chose directement avec des descripteurs de fichiers et read/write nécessite de maintenir les flux de lecture/écriture complètement séparés).
C'est un peu comme strlcpy et strlcat. La fonction n'est pas du C standard (même pas POSIX) et donc pas forcément disponible sur le système cible, mais proposer une implémentation de secours n'est quand même pas si compliqué (bon, funopen demande un peu plus de cogiter).
[^] # Re: et ca compile ?
Posté par lasher . En réponse au journal OpenSSL est mort, vive (le futur) LibreSSL. Évalué à 5.
Qu'ils utilisent des fonctions de leur OS est tout à fait compréhensible, mais il ne faut pas « justifier » ce fait en disant « de toute manière les systèmes BSD ont cette fonctionnalité ».
Par contre, du peu que j'ai pu voir du code des différents BSD, il y a généralement un gros effort d'encapsulation qui rend le code non seulement lisible, mais (relativement) facilement portable. Dans le cas de
funopen, il est possible de reproduire la fonctionnalité, mais sans doute avec une efficacité moindre (puisquefunopenpeut « jouer » avec les différents flux, alors que faire la même chose directement avec des descripteurs de fichiers etread/writenécessite de maintenir les flux de lecture/écriture complètement séparés).C'est un peu comme
strlcpyetstrlcat. La fonction n'est pas du C standard (même pas POSIX) et donc pas forcément disponible sur le système cible, mais proposer une implémentation de secours n'est quand même pas si compliqué (bon,funopendemande un peu plus de cogiter).