Creo que el título se explica por sí mismo. Estoy haciendo un programa y me preguntaba qué debería usar de los dos y por qué.¿Cuál es la diferencia entre argp y getopt?
Respuesta
argp
pueden ser más flexibles/poderoso/etc, pero getopt
es parte del estándar POSIX. Esa es una elección que debe hacer en función de si espera que su programa sea portátil.
No hay mucho para elegir, no creo. El Argp webpage dice esto:
argp proporciona características no disponibles en la interfaz de getopt más comúnmente utilizado. Estas características incluyen la producción automática de salida en respuesta a las opciones '--ayuda' y'versión ', como se describe en normas de codificación GNU. El uso de argp hace que sea menos probable que los programadores omitan implementar estas opciones adicionales o mantenerlas hasta la fecha .
Argp también proporciona la capacidad de combinar varios analizadores de opciones definidos de forma independiente en uno, mediando los conflictos entre ellos y haciendo que el resultado aparezca sin interrupciones. Una biblioteca puede exportar un analizador de opciones argp que los programas de usuario pueden emplear junto con su propia opción analizadores, lo que resulta en menos trabajo para los programas de usuario. Algunos programas pueden usar solo analizadores de argumentos exportados por bibliotecas, logrando así análisis de opciones coherente y eficiente para las abstracciones implementadas por las bibliotecas.
Desde el Argp manual:
argp proporciona características no disponibles en la interfaz de getopt más comúnmente utilizado. Estas características incluyen la producción automática de salida en respuesta a las opciones '--ayuda' y'versión ', como se describe en normas de codificación GNU. El uso de argp hace que sea menos probable que los programadores omitan implementar estas opciones adicionales o mantenerlas hasta la fecha .
- 1. ¿Cuál es la diferencia entre {0} y ""?
- 2. Cuál es la diferencia entre = y: =
- 3. ¿Cuál es la diferencia entre .ToString (+) y ""
- 4. Cuál es la diferencia entre $ (...) y `...`
- 5. ¿cuál es la diferencia entre:.! y: r !?
- 6. ¿Cuál es la diferencia entre ".equals" y "=="?
- 7. ¿Cuál es la diferencia entre dict() y {}?
- 8. ¿Cuál es la diferencia entre `##` y `hashCode`?
- 9. ¿Cuál es la diferencia entre "$^N" y "$ +"?
- 10. ¿Cuál es la diferencia entre [indefinido] y [,]?
- 11. ¿Cuál es la diferencia entre + = y = +?
- 12. ¿Cuál es la diferencia entre " " y ""?
- 13. Cuál es la diferencia entre $ y jQuery
- 14. OpenGL (ES) - ¿Cuál es la diferencia entre frustum y orto?
- 15. Cuál es la diferencia entre la función() {}() y la función() {}()
- 16. ¿Cuál es la diferencia entre la abstracción y la encapsulación?
- 17. ¿Cuál es la diferencia entre @ y $ y% en MSBuild?
- 18. ¿Cuál es la diferencia entre la vinculación estática y dinámica?
- 19. ¿Cuál es la diferencia entre la sección .got y .got.plt?
- 20. ¿Cuál es la diferencia entre el colado y la coerción?
- 21. ¿cuál es la diferencia entre el complemento y la biblioteca?
- 22. ¿Cuál es la diferencia entre el casting y la conversión?
- 23. ¿Cuál es la diferencia entre WPF y la aplicación Silverlight?
- 24. ¿Cuál es la diferencia entre uno mismo y la ventana?
- 25. ¿Cuál es la diferencia entre CookieContainer y la colección Response.Cookies?
- 26. ¿Cuál es la diferencia entre la relación Composición y Asociación?
- 27. ¿cuál es la diferencia entre el material y la textura?
- 28. ¿Cuál es la diferencia entre el marco y la arquitectura?
- 29. ¿Cuál es la diferencia entre la carpeta vim72 y vimfiles?
- 30. ¿cuál es la diferencia entre la lex y yacc
http://www.gnu.org/s/hello/manual/libc/Argp.html explica bien – lostyzd
@lostyzd enlace de actualización: http://www.gnu.org/software/libc/manual/html_node/ Argp.html # Argp. Curiosidad: argp [se basa en getopts] (https://sourceware.org/git/?p=glibc.git;a=blob;f=argp/argp.h;h=40bf5e6b631e06a14a5416a82d1a589593858336;hb=4e42b5b8f89f0e288e68be7ad70f9525aebc2cff#l1). –