Zabij system systemu w c

Zabij system systemu w c

System operacyjny jest używany przez system operacyjny w języku C Kill () do wysyłania sygnału przerwania do procesu, wzywając go do wyjścia. Z drugiej strony wywołanie systemu zabijania nie zawsze oznacza, że ​​proces jest zakończony; może mieć różne znaczenia. Korzystając z funkcji systemowej „zabój ()”, proces może sygnalizować do nowego procesu. Wezwanie systemowe Kill () jest szeroko stosowane do transmisji sygnałów do programów wielowymiarowych lub tradycyjnych procesów. Na podstawie jego wartości liczbowych parametr całkowitego PID ma wiele implikacji. Jeśli wartość PID jest więcej niż zerowa, sygnał SIG jest wydawany do grupy wątków procesu, której PID pasuje do PID. Jeśli wartość PID jest równa zero, sygnał SIG jest przesyłany do wszystkich grup wątków w tej samej grupie procesu, co proces dzwoniącego. Jeśli PID jest równa -1, z wyjątkiem Swapper (PID 0), init (PID 1) i prądu, sygnał jest podawany do wszystkich procesów.

W tym przewodniku wyjaśnimy wdrożenie wywołania systemu Kill () w języku C.

Wymagania wstępne:

  • Instalacja i konfiguracja dowolnego systemu operacyjnego.

Notatka: Używamy Ubuntu 20.04 System Linux.

  • Instalacja kompilatora GCC do kompilacji i wykonania kodu
  • Prawa sudo

Przykład wywołania systemu Kill () w C

Zacznijmy od krótkiego i prostego przykładu, aby wyjaśnić naszą koncepcję połączeń systemowych Kill (). W tym celu musimy mieć .plik C w naszym systemie. Jak już powiedziano, że używamy Ubuntu 20.04 system Linux, więc utworzymy .plik C za pomocą powłoki. Po pierwsze, uruchom powłokę, przeszukując ją w zastosowaniu Ubuntu 20.04 System Linux lub wykorzystujący klucz „Ctrl+Alt+T”. Po uzyskaniu dostępu do powłoki Wykonaj poniższe polecenie w konsoli.

$ nano zabój.C

Nazwa pliku w naszym przypadku to „Zabij.C". Jednak od Ciebie zależy, czy nazwa plik zgodnie z wyborem. Po wdrożeniu wyżej wymienionego polecenia edytor GNU Nano pojawi się na ekranie. Musisz napisać podobny kod, jak wyświetlony na zrzucie ekranu poniżej. Jednak w zależności od wymagań pracy kod można łatwo zmodyfikować.

Int Argc (liczba argumentów) posiada ilość argumentów wiersza poleceń podanych przez użytkownika, takie jak nazwa programu. Jeśli nadajemy programowi wartość, wartość ARGC wyniesie dwa; jeden dla argumentu i jeden dla nazwiska programu. Wartość Argc nie powinna być ujemna. Argv (argument wektor) to tablica wskaźnika postaci, która zawiera wszystkie argumenty. W funkcji PrintF użyliśmy getpid ().

Funkcja getpid () służy do uzyskania identyfikatora procesu procesu, który go wywołuje. PID dla pierwszego procesu wynosi 1, a każdy następny proces ma inny identyfikator. Jest to prosta metoda uzyskania PID. Ta funkcja pomaga wyłącznie w uzyskaniu unikalnych identyfikatorów procesów. Unistd.Biblioteka H, ​​skrót standardowej biblioteki UNIX, zapewnia funkcję sleep (). W tym scenariuszu chcemy spać przez 5 sekund. Parametr wyniesie 5, czyli liczbą całkowitą. Sigsegv skrótu oznacza „naruszenie segmentacji.”Gdy program próbuje pisać/odczytać poza pamięcią przydzieloną do niego lub podczas pisania pamięci, którą można odczytać tylko, SIGSEGV. Sigsegv skrótu oznacza „naruszenie segmentacji”. Po napisaniu kodu nadszedł czas na wykonanie i kompilację.

Wykonaj podane poniżej polecenie w konsoli Ubuntu 20.04 System Linux.

$ GCC KILL.C

Nie będzie wyjścia tego polecenia. Teraz, aby uzyskać dane wyjściowe wyżej napisanego polecenia, wykonaj podane poniżej polecenie w konsoli Ubuntu 20.04 System Linux.

$ ./A.na zewnątrz

Możesz sprawdzić, czy wyjście zostało wyświetlone na powładzie.

Wniosek

Ten artykuł zawierał krótki opis wywołania systemu Kill () w C. Wykorzystanie połączenia systemowego Kill () w C zostało szczegółowo zawierane. Wykonaliśmy jeden z przykładów, aby wyjaśnić koncepcję. Mam nadzieję, że ten program przyniesie korzyści w celu skutecznego wykonywania kodu.