C Programmering

Hur man använder Open System Call i C

Hur man använder Open System Call i C

Systemanropen används i Linux-distributionerna för att tillhandahålla en dörröppning inom Linux OS och programmen. Operativsystemet Linux använder Glibc-biblioteket för att stödja systemanrop i det medan C-språket används. Det finns många fler sätt att använda systemanrop också. I den här artikelguiden kommer vi att diskutera det öppna systemanropet i Linux-systemet. Systemet "Öppna" har använts för att snabbt öppna filen som anges i sökvägen. Det berättar för oss om filbeskrivaren för en användarskapad fil. Vi har använt Ubuntu 20.04 för att få ett praktiskt “Open” -systemsamtal.

Installera bibliotek

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

$ sudo apt install manpages-dev

Produktionen för att slutföra installationen ges nedan.

Nu kommer vi att söka efter det öppna systemanropet med kommandot “man” enligt nedan.

$ man 2 öppen

Utgångssidan för systemanropet "Öppna" har visats nedan. Du kan se ytterligare information om den. Tryck på “q” -knappen för att avsluta den.

Ovanstående syntax visar de första tre raderna med 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ägen", som är namnet på en fil som ska öppnas. Den andra parametern "flaggor" visar läget för en fil, t.ex.g., läsa eller skriva. Den andra syntaxen kan användas när filen inte finns. Parameterläget används för att visa behörigheterna i filen.

Nu är det dags att installera GCC-kompilatorn för felsökning av C-kod i Ubuntu 20.04 Linux-distribution. Utfö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.

Resultatet för slutförandet visas nedan.

Exempel 01

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

$ touch-test.Text

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

$ cat test.Text

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

$ nano nytt.c

Nedanstående GNU nano-fil öppnas. Du måste skriva nedan C-språkkoden i den. Du kan se att vi har lagt till nödvändiga bibliotekspaket för att C-koden ska kunna köras ordentligt. 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 filbeskrivaren. Vi har deklarerat karaktärstypens buffertmatris som "buf" med storlek 50. Det öppna systemanropet har använts för att läsa innehållet från filtestet.txt ”och returnera det till filbeskrivaren. ”O_RDONLY” har använts för läsändamål. Nästa rad visar det lästa systemanropet för att samla de 10 bytes från bufferten och returnera det till heltalet n. Skrivkommandot har också använts för att skriva innehållet eller buffertdata i filbeskrivaren, vilket är utgångsskärmen I vårt fall just nu. Spara den här filen med Ctrl + S och stäng den med kommandot Ctrl + X.

#omfatta
#omfatta
#omfatta
#omfatta
int main ()

int n, fd;
char buf [50];
fd = öppen (“test.txt ”, O_RDONLY);
n = läs (fd, buf, 10);
skriv (1, buf, 10);

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

$ gcc nytt.c

Nu är det dags att kontrollera utdata för C-koden för ett öppet systemanrop. Låt oss använda nedanstående a.kommandot i skalet. Utgången visar de 10 byte från innehållet i ett filtest.Text".

$ ./ a.ut

Låt oss ta ett annat exempel för att skriva innehållet i en fil i 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”. Alla koder är desamma förutom en ytterligare rad. Den näst sista raden i koden har använt det öppna systemanropet för att skapa en ny fil med namnet “target” med hjälp av O_CREAT och läget, skriv-bara som O_WRONLY. 0642 visar de behörigheter som tilldelats den här filen. Och filen har återlämnats till en ny filbeskrivare. Nästa rad har visat ett kommando för att skriva bytes av innehåll i bufferten enligt dess filbeskrivare. Spara filen och stäng den.

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

$ gcc nytt.c

För att visa utdata från C-kod, prova a.instruktion i skalet enligt nedan. Det finns ingen utdata eftersom utdata har omdirigerats till den nyligen skapade filen "target".

$ ./ a.ut

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

$ kattmål

Slutsats

I ovanstående handledning förklarade vi 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 implementera ditt önskade program.

Topp 10 spel att spela på Ubuntu
Windows-plattformen har varit en av de dominerande plattformarna för spel på grund av den enorma andelen spel som utvecklas idag för att stödja Window...
5 bästa arkadspel för Linux
Numera är datorer seriösa maskiner som används för spel. Om du inte kan få den nya poängen vet du vad jag menar. I det här inlägget kommer du att känn...
Strid om Wesnoth 1.13.6 Utveckling släppt
Strid om Wesnoth 1.13.6 släpptes förra månaden, är den sjätte utvecklingsversionen i 1.13.x-serien och den levererar ett antal förbättringar, framför ...