En Fedora Core 7, estoy escribiendo un código que se basa en ARG_MAX
. Sin embargo, incluso si yo #include <limits.h>
, la constante aún no está definida. Mis investigaciones muestran que está presente en <sys/linux/limits.h>
, pero se supone que es portátil en Win32/Mac/Linux, por lo que incluirlo directamente no es una opción. ¿Que está pasando aqui?¿Por qué ARG_MAX no está definido a través de limits.h?
Respuesta
La razón por la que no está en los límites.h es que no es una cantidad que da los límites del rango de valores de un tipo integral en función del ancho de bits en la arquitectura actual. Ese es el rol asignado a los límites.h por el estándar ISO.
El valor que le interesa no está ligado al hardware en la práctica y puede variar de una plataforma a otra y quizás de una compilación del sistema a una compilación del sistema.
Lo correcto es llamar al sysconf
y pedirle "ARG_MAX" o "_POSIX_ARG_MAX". Creo que es la solución compatible con POSIX.
Acc. En mi documentación, incluye uno o ambos de unistd.h o limits.h según los valores que está solicitando.
Otro punto: muchas implementaciones de la familia de funciones del ejecutor devuelven E2BIG o un valor similar si intentas llamarlas con un entorno de gran tamaño. Esta es una de las condiciones definidas bajo las cuales el ejecutivo puede regresar.
ARG_MAX se define en /usr/include/linux/limits.h. Mi versión del kernel de Linux es 3.2.0-38.
- 1. sqlconnection no está definido
- 2. chrome.extension.onMessage no está definido
- 3. "document.formName" no está definido?
- 4. String.charCode¿No está definido?
- 5. "$ .support no está definido"
- 6. ISODate no está definido
- 7. process.env.NODE_ENV no está definido
- 8. ko.mapping no está definido
- 9. ¿Está definido por mucho tiempo?
- 10. ¿Por qué en Ruby, a || 1 lanzará un error cuando `a` no está definido, pero a = a || 1 no?
- 11. NameError: nombre de 'yo' no está definido
- 12. ReferenceError: "alerta" no está definido
- 13. Error: 'jQuery no está definido'
- 14. 'AjaxControlToolkit' no está definido Error
- 15. Extensión de Firefox: gBrowser no está definido
- 16. ReferenceError: google no está definido
- 17. SignalR: $ .connection no está definido
- 18. el gráfico no está definido
- 19. $ no está definido en iFrame
- 20. SignalR $ .connection no está definido
- 21. ejs 'parcial no está definido'
- 22. backbone view - no está definido
- 23. SCRIPT5009: 'JSON' no está definido
- 24. PyCharm: DJANGO_SETTINGS_MODULE no está definido
- 25. TypeError: row no está definido
- 26. ¿El modelo de backbone no está definido?
- 27. ReferenceError no capturadas: AFMA_getSdkConstants no está definido
- 28. Usando herencia, ¿por qué no está definido goPee() en mi clase de prueba?
- 29. ReferenceError no detectada: jQuery no está definido
- 30. Python: "nombre global 'time' no está definido"