getopt() बिल्ट-इन C फ़ंक्शन में से एक है जिसका उपयोग कमांड लाइन विकल्प लेने के लिए किया जाता है। इस फ़ंक्शन का सिंटैक्स नीचे जैसा है -
getopt(int argc, char *const argv[], const char *optstring)
opstring वर्णों की एक सूची है। उनमें से प्रत्येक एकल वर्ण विकल्प का प्रतिनिधित्व करता है।
यह फ़ंक्शन कई मान देता है। ये नीचे की तरह हैं -
- यदि विकल्प कोई मान लेता है, तो उस मान को ऑप्टार्ग द्वारा इंगित किया जाएगा।
- यह -1 लौटाएगा, जब प्रक्रिया के लिए कोई और विकल्प नहीं होगा
- रिटर्न '?' यह दिखाने के लिए कि यह एक अपरिचित विकल्प है, यह इसे ऑप्टोप करने के लिए संग्रहीत करता है।
- कभी-कभी कुछ विकल्पों को कुछ मूल्य की आवश्यकता होती है, यदि विकल्प मौजूद है लेकिन मान नहीं हैं, तो यह भी '?' वापस आ जाएगा। हम ऑप्टस्ट्रिंग के पहले वर्ण के रूप में ':' का उपयोग कर सकते हैं, इसलिए उस समय में, यह '?' के बजाय ':' वापस आ जाएगा यदि कोई मान नहीं दिया गया है।
उदाहरण
#include <stdio.h> #include <unistd.h> main(int argc, char *argv[]) { int option; // put ':' at the starting of the string so compiler can distinguish between '?' and ':' while((option = getopt(argc, argv, ":if:lrx")) != -1){ //get option from the getopt() method switch(option){ //For option i, r, l, print that these are options case 'i': case 'l': case 'r': printf("Given Option: %c\n", option); break; case 'f': //here f is used for some file name printf("Given File: %s\n", optarg); break; case ':': printf("option needs a value\n"); break; case '?': //used for some unknown options printf("unknown option: %c\n", optopt); break; } } for(; optind < argc; optind++){ //when some extra arguments are passed printf("Given extra arguments: %s\n", argv[optind]); } }
आउटपुट
Given Option: i Given File: test_file.c Given Option: l Given Option: r Given extra arguments: hello