Angenommen, meine Kommandozeilen-Utility-Nachrichten mit folgenden Struktur sendenWie wird die Syntax für komplexe Befehlszeilenoptionen entworfen?
struct Message {
uint32_t ip;
string id;
}
Benutzer in der Lage sein muss, Host (IPv4- + Port) und Filter auf ip und id pro Host (erlaubt Netzwerk angeben Adressen und zu sendende IDs). Wie kann ich klare Syntax für solch eine komplexe Option entwerfen?
Das Beste, was ich erfunden ist:
--msg-send="192.168.10.2:8080;ip_isin=10.0.0.0/8,172.16.0.1/16;id=one,two"
Aber etwas stimmt nicht mit ihm ... zum Beispiel =
Zeichen innen ist ärgerlich ... Ist „der Königsweg“ für die Kommandozeilenargumente jemand weiß, mit komplexer Struktur?
andere Variante ist besser:
--msg-send="192.168.10.2:8080{ip 10.0.0.0/8,172.168.0.0/16}{id one,two}"
UPD: msg-send Plural ist, kann der Benutzer mehrere Hosts mit unterschiedlichen Filtern gesetzt
Sind Sie mit C? – Sumit
@ Sumit, spielt es eine Rolle? Ja, ich benutze getopt. – hoxnox
Es könnte Ihre Frage helfen. Das hier verwendete "c" -Tag ist beliebter als die von Ihnen verwendeten Tags. – Sumit