PIRNE SYSTEM CALL IN C

PIRNE SYSTEM CALL IN C
Połączenie systemowe bind () wiąże adres lub nazwę z dowolnym gniazdem w języku c. To połączenie systemowe było głównie używane w programowaniu gniazda. Ten adres zostanie połączony z deskryptorem gniazda. Połączenie systemowe BIND () zawiera trzy parametry w rzeczywistości. Pierwszy to deskryptor gniazda. Drugim parametrem jest wskaźnik używany na adres gniazda. Adres musi być jak jakaś lokalna ścieżka. Trzecim argumentem może być rozmiar adresu gniazda. Dzisiejszy przewodnik zobaczy, jak działa połączenie systemowe „bind ()” w Ubuntu 20.04 Korzystanie z języka C. Więc najpierw zaloguj się z systemu.

Przykład:

Po udanym i odpowiednim zalogowaniu się z konta użytkownika systemu Linux otwórz aplikację konsoli powłoki. Możesz użyć klawisza skrótu „CTRL+Alt+T” lub przeszukać go z obszaru aktywności stacjonarnej, aby go uruchomić. Po uruchomieniu konsoli terminali, najpierw utwórzmy plik języka C z powszechnie znanym zapytaniem „dotyk” w następujący sposób:

Ten plik został utworzony w folderze domowym Linux. Aby otworzyć i edytować ten plik, użyj dowolnego prostego edytora. Najbardziej sugerowane to Vim i GNU. Więc wykorzystaliśmy redaktor „GNU” Nano, aby otworzyć nowo wykonane „nowe.plik C ”.

Po otwarciu pliku w edytorze dodaliśmy w nim kod poniżej. Kod zawiera niezbędne biblioteki zawarte w nim do programowania skarpet i strumienia wejściowego. Na samym początku kodu zdefiniowaliśmy ścieżkę gniazda jako „domowy” katalog Ubuntu 20.04. Główna metoda została zainicjowana z zmienną liczbową i wskaźnikiem tablicy typu znaków jako argumentu. Zmienna liczba całkowitych „S” została ogłoszona. Zainicjowano zmienną typu struktury dla adresu gniazda. Funkcja „gniazdo” została użyta do zainicjowania gniazda w systemie Linux i strumienia gniazda z 0 rozmiarami. Wszystkie informacje dotyczące gniazda zostały zapisane w deskryptorze „S”. Jeśli rozmiar gniazda jest równy „-1”, musi wyrzucić komunikat o błędzie podczas rzucania kompilacji kodu.

Funkcja „Memset” została tutaj użyta do powiązania lokalnego adresu gniazda z rozmiarem zdefiniowanej struktury. Rodzina adresu gniazda systemowego została zdefiniowana. Następnie użyto tutaj wywołania systemowego STNCPY. Teraz przychodzi główna część. Korzystamy z instrukcji „IF”, aby użyć w nim wywołania systemu bind (). Połączenie systemu wiązania przynosi deskryptor gniazda, uzyskuje adres strukturalny i wiązał go z lokalnym adresem gniazda i uzyskanie rozmiaru ścieżki adresu gniazda. Jeśli rozmiar adresu strukturalnego jest równa „-1”, wydrukuje błąd „powiązać” wraz z wbudowanym komunikatem o błędzie z systemu za pomocą funkcji „Exit_Failure”. Kod został później zapisany.

Po pierwsze, skompiluj kod z kompilatorem „GCC” używanym dla języka C w systemie Linux. Następnie wykonaj plik za pomocą „a.zapytanie o konsolę. Wyjście rzuca wyjątek, że adres jest już używany. Wskazał katalog „Home” adresu systemu Linux, który jest zawsze w użyciu użytkowników.

Otwórzmy to samo „Nowe.plik C ”, aby nieco się w nim wprowadzić. Musimy użyć tego samego zapytania „nano” w aplikacji konsoli, aby otworzyć je w edytorze edycji. Po prawidłowym otwarciu pliku zmieniliśmy ścieżkę gniazda zdefiniowaną na górze kodu. Zmieniliśmy ścieżkę na „zdjęcia” z „domu”, aby uzyskać inny wynik.

Po kompilacji plik został wykonany i otrzymał kolejną wiadomość. Ten komunikat wskazuje również błąd „odmowa” dostępu do ścieżki „Zdjęcia”.

Wniosek:

Tak więc chodziło o wywołanie systemowe BIND () w C w systemie operacyjnym Linux. Podaliśmy krótkie wyjaśnienie programowania gniazda. Pamiętaj, aby przejść przez Linux, aby uzyskać jasne zrozumienie.