2011-10-06 4 views
7

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?

+0

http://www.gnu.org/s/hello/manual/libc/Argp.html explica bien – lostyzd

+0

@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). –

Respuesta

10

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.

1

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.

3

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 .

Cuestiones relacionadas