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?
risposta
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.
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 .
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 .
- 1. Qual è la differenza tra = e: =
- 2. Qual è la differenza tra Verilog! e ~?
- 3. Qual è la differenza tra? : e ||
- 4. qual è la differenza tra [[], []] e [[]] * 2
- 5. Qual è la differenza tra $ e $$?
- 6. Qual è la differenza tra ("") e (null)
- 7. Qual è la differenza tra dict() e {}?
- 8. Qual è la differenza tra " " e ""?
- 9. Qual è la differenza tra {0} e ""?
- 10. Qual è la differenza tra `##` e `hashCode`?
- 11. Qual è la differenza tra {0} e +?
- 12. Qual è la differenza tra .ToString() e + ""
- 13. qual è la differenza tra:.! e: r !?
- 14. Qual è la differenza tra "è Nessuno" e "== Nessuno"
- 15. Unix: Qual è la differenza tra la fonte e l'esportazione?
- 16. Qual è la differenza tra il callback e la promessa
- 17. Qual è la differenza tra la sezione .got e .got.plt?
- 18. Qual è la differenza tra la lista() e []
- 19. Qual è la differenza tra GHC e la piattaforma Haskell?
- 20. Qual è la differenza tra sé e la finestra?
- 21. Qual è la differenza tra la cartella vim72 e vimfiles?
- 22. Qual è la differenza tra la serratura e RLock
- 23. Qual è la differenza tra la funzione() {}() e function() {}()
- 24. Qual è la differenza tra la crittografia SHA e AES?
- 25. Qual è la differenza tra la [OptionalField] e [NonSerialized]
- 26. Qual è la differenza tra Chisel e Lava e CLaSH?
- 27. Qual è la differenza tra queste funzioni
- 28. Qual è la differenza tra queste funzioni?
- 29. Qual è la differenza tra Response.Write() eResponse.Output.Write()?
- 30. Qual è la differenza tra applicationDidReceiveMemoryWarning, didReceiveMemoryWarning?
http://www.gnu.org/s/hello/manual/libc/Argp.html spiega bene – lostyzd
@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). –