Pourquoi est-sélectionnez utilisé dans Linux

J'ai été en passant par une série de programme et j'ai observé qu'ils utilisent select() avant d'utiliser read(). Exactement pourquoi est-il nécessaire. Pourquoi ne peux-nous venons d'appeler directement le read() et vérifier si elle échoue ou pas ? Aussi pourquoi nous avons pour incrémenter le descripteur de fichier par 1 et le passer alors que je suis de passage le descripteur de fichier qui sont déjà à select()?

Exemple:

r=select(fd+1, &fds, NULL, NULL, &timeout);
où fds a déjà la valeur de fd

  • Un appel à read(2) peut bloquer. Aussi, lire sur poll(2) syscall (ce qui est mieux que select(2) pour le multiplexage des fins; en lire plus sur les C10K problem).
  • qu'entendez-vous par "le multiplexage des fins"?
  • Les deux poll(2) et la vieille select(2) sont en attente et mulltiplexing sur plusieurs descripteurs de fichiers. Leur rôle est conceptuellement similaire (mais poll est plus C10K, puisqu'en mesure de multiplex sur plus de 1024 descripteurs de fichiers).
InformationsquelleAutor user1667307 | 2013-01-27