Drep systemanrop i C

Drep systemanrop i C

Kill () Systemanrop på C -språk brukes av operativsystemet for å sende et seponeringssignal til en prosess, og oppfordrer det til å avslutte. På den annen side innebærer et killsystemanrop ikke alltid at prosessen avsluttes; Det kan ha en rekke betydninger. Ved hjelp av "Kill ()" -systemfunksjonen kan en prosess signalisere til en ny prosess. Kill () systemanrop brukes mye til å overføre signaler til multithreaded -programmer eller tradisjonelle prosesser. Basert på dens numeriske verdier har heltall PID -parameteren flere implikasjoner. Hvis PID -verdien er mer enn null, utstedes SIG -signalet til prosessens trådgruppe hvis PID samsvarer med PID. Hvis PID -verdien tilsvarer null, overføres SIG -signalet til alle trådgrupper i samme prosessgruppe som innringerprosessen. Hvis PID tilsvarer -1, bortsett fra swapper (PID 0), init (PID 1) og strøm, gis signalet til alle prosesser.

I denne guiden vil vi forklare implementeringen av Kill () systemanrop på C -språk.

Forutsetninger:

  • Installasjon og konfigurasjon av et hvilket som helst operativsystem.

Merk: Vi bruker Ubuntu 20.04 Linux -system.

  • Installasjon av GCC -kompilator for kodesamling og utførelse
  • Sudo rettigheter

Eksempel for Kill () Systemanrop i C

La oss starte med et kort og enkelt eksempel for å avklare Kill () System Call Concept. For dette må vi ha en .C -fil i systemet vårt. Som det allerede er uttalt at vi bruker Ubuntu 20.04 Linux -system, så vi lager en .C -fil ved hjelp av skallet. For det første, lanser skallet ved å søke på det i bruken av Ubuntu 20.04 Linux -system eller bruker “Ctrl+Alt+T” -tasten. Når du har fått tilgang til skallet, kjør den nedenfor-uttalte kommandoen i konsollen.

$ Nano Kill.c

Filnavnet i vårt tilfelle er “Kill.C ”. Imidlertid er det opp til deg å navngi filen din i henhold til ditt valg. Ved implementeringen av ovennevnte kommando vil GNU Nano-redaktøren dukke opp på skjermen din. Du må skrive en lignende kode som vist i skjermbildet nedenfor. Avhengig av arbeidskravene dine, kan imidlertid koden enkelt endres.

INT ARGC (argumentantall) har mengden kommandolinjeargumenter gitt av brukeren, for eksempel programmets navn. Hvis vi gir programmet en verdi, vil verdien av ARGC være to; en for argumentet og en for programmets navn. ARGC -verdien skal ikke være negativ. ARGV (argumentvektor) er en karakterpeker -matrise som inneholder alle argumentene. I Printf -funksjonen har vi brukt GetPid ().

Funksjonen getPid () brukes til å oppnå prosess -ID for prosessen som kaller den. PID for den innledende prosessen er 1, og hver etterfølgende prosess får en annen ID. Det er en enkel metode for å skaffe PID. Denne funksjonen hjelper deg utelukkende med å få unike prosessidentifikatorer. Unistd.H Library, en snarvei av Unix Standard Library, gir søvn () -funksjonen. Vi vil sove i 5 sekunder i dette scenariet. Parameteren vil være 5, som er et heltall. Forkortelsen Sigsegv står for “Segmenteringsbrudd.”Når et program prøver å skrive/lese utenfor minnet som er tildelt det, eller når du skriver minne som bare kan leses, oppstår Sigsegv. Forkortelsen Sigsegv står for "Segmenteringsovertredelse". Etter å ha skrevet koden, er det tid for utførelse og samling.

Utfør den angitte kommandoen nedenfor i konsollen til Ubuntu 20.04 Linux -system.

$ GCC Kill.c

Det vil ikke være noen output av denne kommandoen. Nå, for å få output fra ovennevnte kommando, utfør den angitte kommandoen nedenfor i konsollen til Ubuntu 20.04 Linux -system.

$ ./en.ute

Du kan sjekke at utgangen er vist på skallet.

Konklusjon

Denne artikkelen har gitt deg en kort beskrivelse av Kill () systemanrop i C. Bruken av Kill () Systemanrop i C er gitt i detalj. Vi har utført et av eksemplene for å avklare konseptet. Jeg håper dette programmet vil være til nytte for deg med å utføre koden din effektivt.