argv and argc argümanları ile belirtilen argüman listesindeki sonraki seçenek argümanı ile döner. Normalde bu değerler main işlevinden alınan argümanlardan gelir.
seçenekler argümanı yazılım için geçerli seçenek karakterlerinin belirtildiği bir dizgedir. Bu dizgedeki bir seçenek karakterinden sonra bir iki nokta üstüste (:) varsa bu, o seçeneğin bir argüman gerektirdiğini belirtir. Seçenek karakterinden sonra iki tane iki nokta üstüste (::) varsa bu, o seçeneğin argümanının isteğe bağlı olduğunu belirtir; bu bir GNU oluşumudur.
getopt işlevi seçenek olmayan argv elemanlarından sonraki seçenekler için üç yöntem kullanır. Özel -- argümanı her durumda seçeneklerin sonunu belirtir.
Neticede tüm seçenek olmayan argümanların sonda olacağından hareketle, taranan argv içeriğinin kendi aralarında yer değiştirilmesi öntanımlıdır. Bu, seçeneklerin herhangi bir sırada verilebilmesini, bu durumun olabileceği varsayılmamış yazılımlarda bile sağlar.
Eğer seçenekler dizgesi bir tire işareti (-) ile başlıyorsa, bu özel olarak ele alınır. Bu durumda, \1 seçenek karakteri ile ilişkiliymiş gibi döndürülecek seçenek olmayan argümanlara izin verilir.
POSIX şu davranışı talep eder: İlk seçenek olmayan argüman işlemi durdurur. Bu kip, POSIXLY_CORRECT ortam değişkeni atanarak ya da seçenekler dizgesini artı (+) işareti ile başlatarak seçilebilir.
getopt işlevi sonraki komut satırı seçeneği olan seçenek karakteri ile döner. Artık seçenek argümanı kalmadığında -1 döndürür. Hala seçenek olmayan argümanlar olabilir; bunu sınamak için optind harici değişkenini argc parametresi ile karşılaştırabilirsiniz.
Seçenek bir argümana sahipse, getopt argümanı optarg değişkenine saklayıp döner. optarg değişkeninin değerini sırası geldikçe kopyalamanız gerekmez, çünkü değişkenin değeri üzerine yazılabilen durağan alana gösterici değil, özgün argv dizisine bir göstericidir.
getopt işlevi argv içinde seçenekler ile belirtilmemiş bir seçenek karakteri bulursa ya da bir seçenek argümanı eksikse ? ile döner ve optopt harici değişkenine seçenek karakterini atar. seçenekler dizisinin ilk argümanı bir ikinokta üstüste (:) ise, getopt : yerine eksik seçenek argümanını belirten ? ile döner. Ek olarak, opterr harici değişkeni sıfırdan farklıysa (öntanımlı olarak sıfırdan farklıdır), getopt bir hata iletisi basar.