Hur man använder Open System Call i C

How Use Open System Call C



Systemanropen används i Linux -distributionerna för att tillhandahålla en dörröppning inom Linux OS och programmen. Linux -operativsystemet använder Glibc -biblioteket för att stödja systemanrop i det medan du använder C -språket. Det finns också många fler sätt att använda systemsamtal. I denna artikelguide kommer vi att diskutera det öppna systemanropet i Linux -systemet. Det öppna systemsamtalet har använts för att snabbt öppna filen som anges i sökvägen. Det meddelade oss om filbeskrivningen för en användarskapad fil. Vi har använt Ubuntu 20.04 för att få ett praktiskt öppet systemsamtal.

Installera bibliotek

C -språket kräver att ytterligare bibliotekspaket installeras som förutsättningar. Först och främst måste du installera paketet manpages-dev för att kontrollera informationen om systemsamtal. Öppna kommandoradsterminalen från aktivitetsområdet och kör instruktionerna nedan för att installera manpages.







$ sudo apt installera manpages-dev



Utdata för installationens slutförande har angetts nedan.







Nu kommer vi att leta efter det öppna systemsamtalet med kommandot man enligt nedan.

$ man2öppen



Utmatningssidan för det öppna systemsamtalet har visats nedan. Du kan se ytterligare information om det. Tryck på q -knappen för att lämna den.

Ovanstående syntax visar de tre första raderna av nödvändiga bibliotek som ska läggas till för systemanrop. Det finns tre syntaxer tillgängliga för det öppna systemanropet. Den första syntaxen visar sökvägsnamnet, vilket är namnet på en fil som ska öppnas. Den andra parametern, flaggor, visar läget för en fil, t.ex. läs eller skriv. Den andra syntaxen kan användas när filen inte finns. Parameterläget används för att visa behörigheterna för filen.

Nu är det dags att installera GCC -kompilatorn för felsökning av C -kod i Ubuntu 20.04 Linux -distributionen. För det, kör nedanstående instruktion i skalet för att göra det.

$ sudo apt installera gcc

Det kräver att du trycker på Y för att fortsätta installera GCC -kompilatorn, annars trycker du på n -knappen för att stänga installationen. Så tryck på y -knappen och tryck på Enter för att fortsätta.

Utdata för färdigställandet visas nedan.

Exempel 01

Låt oss titta på det mycket enkla exemplet på ett öppet systemanrop. Först öppnar du kommandoskalet och skapar en ny textfil test.txt med hjälp av kommandot simple touch enligt följande:

$Rörtest.txt

Lägg till lite data manuellt. Du kan se data i en fil med hjälp av kommandot nedan.

$katttest.txt

Låt oss nu skapa en ny C -fil med ett nano -kommando i skalet, som visas nedan.

$nanony. c

Nedanstående GNU nano -fil öppnas. Du måste skriva nedan C -språkkod i den. Du kan se att vi har lagt till nödvändiga bibliotekspaket för att C -koden ska kunna köras korrekt. Efter det har vi definierat huvudfunktionen för att arbeta med ett öppet systemanrop. Vi har deklarerat två heltalsvariabler. Variabeln n används för att räkna buffertvärden och fd används för filbeskrivningen. Vi har deklarerat buffertmatrisen för tecken som buf med storlek 50. Det öppna systemanropet har använts för att läsa innehållet från filen test.txt och returnera det till filbeskrivningen. O_RDONLY har använts för läsändamål. Nästa rad visar läsesystemsamtalet för att samla de 10 byte från bufferten och returnera det till heltalet n. Skrivkommandot har också använts för att skriva innehållet eller buffertdata till filbeskrivning, vilket är utmatningsskärmen i vårt fall just nu. Spara filen med Ctrl+S och stäng den med kommandot Ctrl+X.

#omfatta
#omfatta
#omfatta
#omfatta

inthuvud()
{
intn,fd;
rödingbuf[femtio];
fd=öppen(testa.Text,O_RDONLY);
n=läsa(fd,buf, 10);
skriva(1 ,buf, 10);

Låt oss först kompilera C -koden för ett öppet systemanrop med kommandot gcc nedan.

$gccny. c

Nu är det dags att kontrollera utdata för C -koden för ett öppet systemanrop. Låt oss använda kommandot a.out nedan i skalet. Utdata visar de 10 byte från innehållet i en fil test.txt.

$./till.ut

Låt oss ta ett annat exempel för att skriva innehållet i en fil till en annan fil med ett öppet systemanrop. För att skapa en ny C -fil med kommandot nano enligt nedan.

$ nano nytt.c

Så ta samma kod med en mindre förändring i den. Vi har definierat en annan filbeskrivare i koden som fd1. All kod är densamma förutom en extra rad. Den näst sista raden i koden har använt det öppna systemanropet för att skapa en ny fil som heter mål med hjälp av O_CREAT och läget, skrivskyddad som O_WRONLY. 0642 visar de privilegier som tilldelats den här filen. Och filen har skickats tillbaka till en ny filbeskrivning. Nästa rad har visat ett kommando för att skriva innehållsbytes i bufferten enligt dess filbeskrivning. Spara filen och stäng den.

Utför kommandot gcc compile för att felsöka C -språkfilen.

$ gcc ny.c

För att visa utmatningen av C -kod, prova a.out -instruktionen i skalet enligt nedan. Det finns ingen utmatning eftersom utdata har omdirigerats till det nyskapade filmålet.

$./till.ut

Låt oss kontrollera data för ett filmål med kommandot cat. Utdata visar att filen har 20 byte.

$ kattmål

Slutsats

I handledningen ovan förklarade vi för dig att använda ett öppet systemanrop på C -språk med hjälp av gcc -kompilatorn. Med hjälp av olika exempel som förklaras i den här guiden kommer du att leda dig till att genomföra ditt önskade program.