C Programmeren

Hoe schrijfsysteemoproep in C . te gebruiken

Hoe schrijfsysteemoproep in C . te gebruiken

De systeemaanroep dient als de primaire gateway tussen programma's en de Linux-besturingssysteemkernel. Hoewel je vrijwel zeker een systeemaanroep zou moeten hebben tijdens je C-programmeercarrière, of je nu streeft naar uitzonderlijke productiviteit of een bepaalde stijl van functie, de Glibc-repository of andere standaardbibliotheken die in populaire Linux-distributies worden gevonden, zullen volstaan ​​voor de overgrote meerderheid van je vereisten. In deze handleiding zullen we een concept opstellen over de Write System-aanroep in C-taal.

Syntaxis:

#include
ssize_t write (int fd, const void *buf, size_t count);

In deze bovenstaande syntaxis toont de eerste regel de bibliotheek voor systeemaanroepen. Op de tweede regel staat fd voor een bestandsdescriptor, wat inderdaad een getal is dat het geopende bestand van een proces aangeeft. Het sleutelwoord *buf staat voor buffer. Dit bevat alle gegevens erin. Volgende is tellen. Het is het aantal bytes dat vanuit de buffer naar een bestandsdescriptor moet worden geschreven.

Installatievereisten:

Om een ​​C-taalcode uit te voeren, moet je eerst enkele pakketten installeren in Linux-distributie. Als u meer informatie wilt zien over de schrijfsysteemaanroep, moet u het pakket manpages-dev installeren om dit te doen. De terminal openen met de sneltoets Ctrl+Alt+T+. Schrijf na het openen het onderstaande apt install-commando gevolgd door het sleutelwoord manpages-dev om manpages te installeren.

$ sudo apt install manpages-dev

Het zal even duren om manpages te installeren. Wacht tot het is voltooid.

Na de installatie kunt u de aanvullende informatie over de "write" systeemaanroep zien via het onderstaande man-commando in de shell.

$ man 2 schrijven

De output man-pagina voor het "write" commando wordt hieronder gegeven:. U kunt de informatie erover lezen. Druk op q om de handleiding te verlaten.

Nu is het tijd om het "Gcc"-pakket in uw Linux-systeem te installeren om in de C-taal te werken. Open daarvoor de shell en schrijf de onderstaande apt install-opdracht gevolgd door het trefwoord "gcc".

$ sudo apt install gcc

Ondertussen kan het u tijdens de installatie vragen om deze actie van de installatie te bevestigen door op "y" te drukken om door te gaan en op "n" om het te stoppen. Dus tik op de "y" -toets en druk op de Enter-toets.

Het wordt binnen enkele minuten in uw systeem geïnstalleerd en de laatste uitvoerregels zijn zoals weergegeven in de onderstaande momentopname:.

Voorbeelden:

Laten we enkele voorbeelden geven van een "schrijf" systeemaanroep in onze Linux-distributie. Open daarom de opdrachtregelshell en maak er een nieuw C-bestand in met de punt "c"-extensie. U moet de onderstaande nano-opdracht gebruiken om deze snel te maken en te openen. We hebben het een naam gegeven als "nieuw".c”.

$ nano nieuw.c

Het onderstaande venster wordt geopend. Nu moet je de toegevoegde code in dit bestand schrijven. In deze code hebben we een unistd.h bibliotheek eerst. Vervolgens hebben we de hoofdfunctie gemaakt en binnen deze functie hebben we een "schrijf" systeemaanroep gemaakt. In deze systeemaanroep is de allereerste parameter de bestandsdescriptor. In dit geval vertegenwoordigt geheel getal 1 het scherm van het uitvoerapparaat, en het is vast. Dus onze output wordt op het scherm getoond. De tweede parameter toont de buffergegevens. Je kunt er van alles aan toevoegen. En de laatste parameter toont het telnummer voor de gegevens in de bufferparameter. Zoals we 5 als het telnummer hebben genoemd, toont het alleen de eerste 5 bytes van de buffergegevens en negeert het de resterende bytes. Sla deze code op met de sneltoets Ctrl+S en sluit dit bestand af met de opdracht Ctrl+X.

#include
Int hoofd()
Schrijf (1, "Aqsa Yasin", 5);

Probeer nu in de terminal de onderstaande gcc-opdracht om deze nieuw gemaakte code met een bestandsnaam te compileren.

$ gcc nieuw.c

Laten we deze code eens bekijken door de standaard a . te gebruiken.out-bestand gemaakt tijdens runtime. Dus, probeer de onderstaande a.out commando om de uitvoer van de "write" systeemaanroep te controleren. We moeten het gebruiken met "./” om het bestand uit de huidige map te kiezen.

$ ./een.uit

De uitvoer die u kunt zien, heeft alleen het woord "Aqsa" weergegeven vanwege het telnummer 5.

Laten we onze code een beetje veranderen. We hebben het telnummer gewijzigd in 11 omdat we in totaal 11 bytes in onze buffergegevens "Aqsa Yasin" hebben. Dus deze keer toont de uitvoer de hele bytes aan stringgegevens "Aqsa Yasin". Sla dit bestand op met Ctrl+S en sluit af met de sneltoets Ctrl+X.

Laten we de bijgewerkte code compileren met de nieuw geïnstalleerde gcc-compiler voor Linux-distributie. Probeer hetzelfde gcc-commando samen met de naam van een bestand als "new.c”.

$ gcc nieuw.c

Geef nu de uitvoer van dezelfde code weer met behulp van de vorige "a.out" commando zoals hieronder:. De uitvoer toont de volledige string "Aqsa Yasin" van de buffer.

$ ./een.uit

Laten we eens kijken hoe de code werkt als we het aantal tellen groter nemen dan het totale aantal bytes dat de buffergegevens bevatten buffer. Dus we hebben de telling als 30 . gebruikt. Bewaar en sluit het bestand.

Compileer hetzelfde bijgewerkte bestand met de gcc-opdracht zoals hieronder:.

$ gcc nieuw.c

Voer nu het bestand uit met de a.out-commando, en de uitvoer zal de buffergegevens tonen, evenals een vuilniswaarde ermee, zoals weergegeven in de snapshot-uitvoer hieronder:.$ ./een.uit

U kunt ook het totale aantal bytes controleren dat in het bestand is geschreven door de onderstaande code in hetzelfde bestand te gebruiken:.

Compileer de code met gcc-instructie.

$ gcc nieuw.c

De uitvoer toont het totale aantal bytes, inclusief buffergegevens en regeleinde, met behulp van de a.uit-commando.

$ ./een.uit

Conclusie:

In deze tutorial hebben we het concept uitgewerkt om de systeemaanroep “Write” in C . te gebruiken. Probeer alle voorbeelden om het idee van de "schrijf" systeemaanroep te begrijpen met behulp van dit artikel.

Met WinMouse kunt u de beweging van de muisaanwijzer op Windows-pc aanpassen en verbeteren
Als u de standaardfuncties van uw muisaanwijzer wilt verbeteren, gebruik dan freeware WinMuis. Het voegt meer functies toe om u te helpen het meeste u...
Linkermuisknop werkt niet op Windows 10
Als u een speciale muis gebruikt met uw laptop of desktopcomputer, maar de linkermuisknop werkt niet not op Windows 10/8/7 om wat voor reden dan ook, ...
Cursor springt of beweegt willekeurig tijdens het typen in Windows 10
Als u merkt dat uw muiscursor vanzelf springt of beweegt, automatisch, willekeurig tijdens het typen op een Windows-laptop of -computer, dan kunnen en...