Me preguntaba qué hace el nfds
, después de leer diferentes manuales, termino con la única respuesta siendo es el descriptor de archivo con el número más alto más uno. ¿Para qué se usa exactamente?Cuál es el nfds de select() usado para
Respuesta
Cuando usa select()
, está tratando de verificar el estado de un conjunto de descriptores de archivos. El rango posible de descriptores de archivos que le interesan oscila entre un mínimo de 0 (entrada estándar) y un valor máximo (el descriptor de archivo más alto que tiene abierto y que le interesa verificar el estado). Tiene que indicar select()
qué tan grande es la lista de descriptores de archivos porque el número total puede ser 'vasto' (32767, por ejemplo). En ese caso, lleva tiempo que el kernel procese los descriptores, además puede que no haya inicializado el fd_set
hasta ese número de entradas. FD_SETSIZE
también figura en la ecuación, pero a veces puede cambiar ese valor.
lo tanto, si desea supervisar los descriptores de fichero 24-31, lo haces con nfds
a 32, y asegúrese de que utiliza FD_ZERO()
a cero toda la fd_set
y FD_SET()
para configurar las entradas 24-31. Tenga en cuenta también que select()
modifica los parámetros de entrada, por lo que debe usar FD_ISSET()
para probar después de los retornos select()
, y en general debe volver a realizar la inicialización (o copiar un valor guardado) de fd_set
antes de llamar al select()
nuevamente.
Del nombre 'nfds' (* número de archivo descriptors *) Hubiera esperado '7' cuando quiero monitorear el número fd' 24' a '31'. ¿Por qué '32'? (Sé que tienes razón, la página del hombre también dice eso, pero me pregunto por qué) – hek2mgl
@ hek2mgl: Es porque el conjunto comienza en el descriptor de archivo 0; no hay forma de que en la interfaz se especifique otro punto de inicio. Eso puede ralentizar las cosas si está utilizando 'select()' en un servidor con miles de descriptores de archivos abiertos. –
Votación descendente: incluso si la respuesta es (la mayoría) correcta, omite los detalles críticos y está redactada de una manera que es imposible de comprender. Por favor, consulte http://unix.stackexchange.com/questions/7742/whats-the-purpose-of-the-first-argument-to-select-system-call en su lugar. – marcv81
- 1. ¿Qué es & amp usado para
- 2. SET vs. SELECT - ¿Cuál es la diferencia?
- 3. , ¿cuál es el mejor o más ampliamente usado MVVM Toolkit para WPF?
- 4. ¿Qué es Big-O para SQL select?
- 5. ACTION_SEND usado para enviar sms
- 6. ¿Para qué has usado Object.clone()?
- 7. ¿Cuál es la diferencia entre GCD Despatch Sources y select()?
- 8. SQL & PHP - ¿Cuál es más rápido mysql_num_rows() o 'select count()'?
- 9. Necesita un recuento de filas después de la instrucción SELECT: ¿cuál es el enfoque SQL óptimo?
- 10. ¿Cuál es el mejor enlace de OpenGL para Java?
- 11. ¿Cuál es la sintaxis para usar una instrucción Select dentro de un Trigger PL/SQL?
- 12. ¿Alguien ha usado HipHop para PHP?
- 13. ¿cuál es la mejor manera de cambiar el formato de fecha en mysql SELECT?
- 14. ¿Cuál es el código de tecla para "$"?
- 15. puede Jailbroken iphone usado para desarrollo
- 16. Cuál es el equivalente de PostgreSQL para ISNULL()
- 17. ¿Cuál es el propósito de Order By 1 en SQL select statement?
- 18. ¿Cuál es el punto del atributo <option> "etiqueta" dentro de <select>?
- 19. ¿Alguien ha usado Delphi para programar VST?
- 20. ¿Está mal usado static_cast?
- 21. ¿Cuál es la posición: relativa útil para?
- 22. NSStream SSL en el socket usado
- 23. ¿Cuál es el operador & = para en Java
- 24. ¿Cuál es el mejor editor para AutoHotkey?
- 25. ¿Cuál es el cero para la cadena?
- 26. ¿Cuál es el mejor visor para NLog?
- 27. "usado sin parámetros de plantilla"
- 28. ¿Cuál es el propósito de Rake?
- 29. ¿Por qué es Select 1 más rápido que Select count (*)?
- 30. ¿Cuál es el mejor método para usar LINQ?
http://unix.stackexchange.com/questions/7742/whats-the-purpose-of-the-first-argument-to-select-system-call –