2011-01-12 20 views
5

C/C++, getopt_long() ile komut satırı argümanlarını ayrıştırmak için kullanılabilir. Bazı seçeneklerin zorunlu olduğunu söylemek mümkün mü? Örneğin, getopt_long'a, aşağıdaki bağlantı noktasından bahsetmeden startServer çağrılırsa ayrıştırma hata vermesi gerektiğini nasıl söyleyebilirim?Zorunlu seçenekler ile getopt_long() in C

./startServer -port 80

Not: Ben seçenek olarak zorunlu argümanlar daha ziyade seçenekleri kendilerinin söz etmiyorum.

+0

Bir yol olduğundan şüpheliyim. Bu seçeneğin görülüp görülmediğini takip etmek? – lijie

cevap

5

getopt_long(), C dilinin bir parçası değildir. Bazı C uygulamalarında mevcut olan ama hepsinden çok uzak olan bir GNU buluşudur.

glibc'de getopt_long() sürümü (çoğu Linux dağıtımında kullanılır), bir seçeneğin zorunlu olduğunu belirtmenize izin vermez. Komut satırını ayrıştırdıktan sonra bunları açıkça kontrol etmeniz gerekir.