2011-10-06 10 views
7

Penso che il titolo sia auto esplicativo. Sto facendo un programma e mi stavo chiedendo cosa dovrei usare dei due e perché.Qual è la differenza tra argp e getopt?

+0

http://www.gnu.org/s/hello/manual/libc/Argp.html spiega bene – lostyzd

+0

@lostyzd collegamento di aggiornamento: http://www.gnu.org/software/libc/manual/html_node/ Argp.html # Argp. Curiosità: argp [è basato su getopts] (https://sourceware.org/git/?p=glibc.git;a=blob;f=argp/argp.h;h=40bf5e6b631e06a14a5416a82d1a589593858336;hb=4e42b5b8f89f0e288e68be7ad70f9525aebc2cff#l1). –

risposta

10

argp possono essere più flessibili/potente/etc, ma getopt fa parte dello standard POSIX. Questa è una scelta che devi fare se pensi che il tuo programma sia portatile.

1

Non c'è molto da scegliere Non credo. Il Argp webpage dice questo:

argp offre funzionalità non disponibili nel più comunemente utilizzata un'interfaccia getopt . Queste funzionalità includono la produzione automatica di output nella risposta alle opzioni "--help" e "--version", come descritto negli standard di codifica GNU . L'uso di argp rende meno probabile che i programmatori trascurino di implementare queste opzioni aggiuntive o mantengano la data fino alla data .

Argp offre anche la possibilità di unire più parser di opzioni definiti in modo indipendente in uno, mediando i conflitti tra di loro e rendendo il risultato appare senza soluzione di continuità. Una libreria può esportare un parser di opzioni argp che i programmi utente potrebbero utilizzare in combinazione con i propri parser opzionali , con conseguente minor lavoro per i programmi utente. Alcuni programmi possono utilizzare solo parser di argomenti esportati da librerie, ottenendo in tal modo opzione-parsing coerente ed efficiente per le astrazioni implementate dalle librerie .

3

Dal Argp manual:

argp offre funzionalità non disponibili nel più comunemente utilizzata un'interfaccia getopt . Queste funzionalità includono la produzione automatica di output nella risposta alle opzioni "--help" e "--version", come descritto negli standard di codifica GNU . L'uso di argp rende meno probabile che i programmatori trascurino di implementare queste opzioni aggiuntive o mantengano la data fino alla data .

Problemi correlati