Zastosowanie funkcji getopt połączenia

Zastosowanie funkcji getopt połączenia
Większość z nas wie, w jaki sposób możemy używać argumentów w naszym programie, ale jeśli zaczniemy używać wielu argumentów i staramy się zachować prawidłową kolejność i liczbę argumentów, zrobi to podstępne zagadki dla użytkownika. Aby uniknąć takiej przeszkody, użyjemy różnych „opcji”. Na przykład „LS -L” tutaj „-L” jest opcją. Możemy używać wielu argumentów i używać ich jako opcji w wielu zamówieniach. W tym artykule widzieliśmy to również z naszym kompilatorem GCC. Możemy również korzystać z wielu opcji i możemy je wykorzystać zgodnie z naszymi potrzebami.

Składnia:

Obydwa 'argc ' I 'argv ' są parametrami instrukcji Count jako akceptowanej przez funkcję main (). 'Optstring„jest argumentem ciągu, który musi rozpoznać znaki opcji. Każda postać śledzona przez jelita grubego „:” jest uważana za argument. „Optind” to zainicjowana zmienna, która jest uważana za indeks następnego elementu, w którym jest ona w kolejce do przetwarzania.

Cel użycia getopt w C:

Funkcja getOpt () jest wbudowana w c, która służy do analizowania argumentów wiersza poleceń.

Wartość zwracana w funkcji getOpt ()

  1. GetOpt () zwróci „-1”, jeśli nie ma już żadnych opcji do przetworzenia.
  2. GetOpt () powróci '?„Jeśli przetwarzana jest opcja, nie jest rozpoznawalna.
  3. GetOpt () zwraca „:” zamiast '?„Jeśli użytkownik nie wprowadzi żadnej wartości dla argumentu.

Jeśli getOpt () znajdzie znak opcji, który nie jest w „optstring”, zwróci (”?') znak jako wyjście. Jeśli brakuje argumentu jako opcji, powinien zwrócić dwukropek („:”) jako wyjście. GetOpt () ustawi zmienną „optopt” na wybrany znak, który wywołał błąd w obu przypadkach. GetOpt () odpowiednio wydrukuje wskaźnik do STDDERR w składni zdefiniowanej dla narzędzia „getopts”, jeśli zmienna „opterr” nie jest ustawiona na 0, a początkowym znakiem „optstring” nie jest okrężnicy.

Funkcja getopt () nie musi być ponownie dostępna. Bezpieczeństwo wątków nie jest obowiązkowe w przypadku funkcji, która nie ma być ponownie wejściowa.

Przykład getopt () w c:

Weźmy prosty program, który akceptuje użytkowników jako -U i -G dla grupy. Przede wszystkim musisz dołączyć plik nagłówka dla funkcji getopt ().

#włączać
#włączać


Skonfigurujmy główną funkcję, w której mamy „argc” jako tablicę liczb całkowitych i postaci jako „** argv”. Teraz skonfigurujemy kilka zmiennych i ustawym nazwę całkowitą opcję_index = 0; Ponieważ każdy z argumentów, które zamierzamy dostarczyć, będzie miał numer indeksu, abyśmy mogli go iterować przez wszystkie argumenty. Ustawiamy lub inicjujemy go do 0, aby zatrzymać ostrzeżenie, ponieważ możemy używać zmiennej nie zainicjowanej.

# Char *nazwa_serby = null;

Ponieważ nie mamy typu danych String w C, konfigurujemy tablicę znaków dla „-u”, aby przyjąć nazwę użytkownika jako wejście i inicjować ją z wartością zerową.

Teraz wejdziemy w pętlę w czasie, a pozwoli nam to odczytać wszystkie argumenty, jeśli zostaną ustawione jakiekolwiek opcje. Podobnie jak w przypadku warunków, potrzebujemy naszych nawiasów, aby otrzymać je z prawdziwą wartością, która w naszym przypadku jest „option_index = getOpt (argc, argv,„ gu: ”)”. Użyjemy getOpt (), aby spojrzeć na naszą liczbę argumentów jako „argc” i przeczytać z naszej tablicy „argv”, aby ustawić opcje. Podobnie, oto opcja „gu:” i umieściliśmy okrężnicę po flagi „U”. „:” Po wartości flagi wskazuje, że nabywa argument. Nie ma znaczenia, w jakiej kolejności składasz opcje, ale ma znaczenie, że umieszczasz okrężność po opcjach.

Teraz będziemy mieli instrukcję przełącznika w naszej pętli i zbadamy wartość przechowywaną w indeksie zmiennej „Option_Index”. Badamy każdy element dla każdego przypadku.

Najpierw ustawimy przypadek, w którym ustawiamy „User_name = Optarg”. Opcje można użyć do odczytania użytkownika, który dodaliśmy jako dane wejściowe po wprowadzeniu „U”. Musimy również wskazać, że skończyliśmy z tą sprawą i robimy to w języku C, używając „przerwy” po każdym przypadku.

Podobnie, używamy drugiego przypadku, w którym jeśli użytkownik wprowadzi „g”, zostanie on wskazany, że wybrał grupę, a my również odejdziemy od tego stwierdzenia.

Teraz w ostatnim przypadku używamy go dla dowolnych innych opcji, które w naszym przypadku mogą być dowolnym błędem. Możemy to odebrać za pomocą „Domyślnie:” i możemy przejść i określić, czy nieprawidłowa opcja jest zidentyfikowana lub wprowadzona. Będziemy wyświetlać instrukcje drukowania z „Niepoprawną opcją”.

Zamierzamy też trochę różnorodność. Mamy nadzieję, że nie widziałeś wcześniej wartości zwracania. Jeśli umieścimy wartość zwracaną na 1, opuścimy główną funkcję. Nasz program zgłosi błąd, co oznacza, że ​​nieprawidłowo uruchomiliśmy program, więc nie chcemy zwracać 0, więc opuszczymy program w jego punkcie.

Teraz zamknęliśmy już wszystkie bloki i upewniliśmy się, że zwykle wróciliśmy do głównych nawiasów. Program zwykle zwraca wartość 0 do funkcji głównej. Z powodzeniem kontrolowaliśmy działanie awarii przez nasz program.

Zobaczmy, czy nasz program działa; Po wpisaniu następującego kodu chcielibyśmy, abyś umieścił to polecenie w wierszu poleceń. Użyliśmy GCC i poszliśmy prosto do kodu źródłowego „Option_program.C ', a następnie użyłem „-o” do opcji. Następnie będzie to argument, a tutaj „proste” jest wyjście.

Po wykonaniu naszego „GCC Simple_Option.c -o proste -wall ' Polecenie pomyślnie, teraz przechodzimy i uruchamiamy z niepoprawną opcją, która jest „-h”. Użycie „-H” jako opcji da nam błąd, ponieważ wysłaliśmy nieprawidłową opcję. Możemy również używać obu argumentów razem, odpowiednio, uzyskując wynik.

Tutaj możemy zobaczyć, czy chcemy wiedzieć, w jaki sposób nasz ostatni program został wykonany. Jeśli wpiszesz „echo $?”, A jeśli zwróci 0, oznacza to, że ostatni program został pomyślnie wykonany, a jeśli zwróci 1, jak widać na powyższym obrazie, co oznacza, że ​​ostatnie wykonanie programu nie powiodło się.

Wniosek:

Ten artykuł miał na celu lepsze i jasne zrozumienie funkcji getOpt (), abyś mógł poprawić czytelność kodu i poprawić ponowne użycie kodu. Omówiliśmy prosty przykład z składnią. Artykuł pomoże ci łatwo uzyskać bardzo solidną wiedzę i zrozumienie, jak używać getopt () jako funkcji. Różne argumenty jako parametry zostały omówione w celu lepszego wykorzystania funkcji.