C లో రైట్ సిస్టమ్ కాల్ ఎలా ఉపయోగించాలి

How Use Write System Call C



ప్రోగ్రామ్‌లు మరియు లైనక్స్ ఆపరేటింగ్ సిస్టమ్ కెర్నల్ మధ్య సిస్టమ్ కాల్ ప్రాథమిక గేట్‌వేగా పనిచేస్తుంది. మీ సి ప్రోగ్రామింగ్ కెరీర్ అంతటా మీరు ఖచ్చితంగా సిస్టమ్ కాల్ చేయాల్సి ఉన్నప్పటికీ, మీరు అసాధారణమైన ఉత్పాదకత లేదా నిర్దిష్ట శైలి ఫీచర్‌ని లక్ష్యంగా పెట్టుకున్నా, గ్లిబ్సి రిపోజిటరీ లేదా ప్రముఖ లైనక్స్ డిస్ట్రోస్‌లో కనిపించే ఇతర ప్రామాణిక లైబ్రరీలు మీలో అత్యధికులకు సరిపోతాయి. అవసరాలు. ఈ గైడ్‌లో, సి భాషలో సిస్టమ్ కాల్ రైట్ గురించి కాన్సెప్ట్ ఏర్పాటు చేస్తాము.

వాక్యనిర్మాణం:

#చేర్చండి

ssize_tవ్రాయడానికి(int fd, const శూన్యం*buf, size_t లెక్కింపు);

ఈ పై వాక్యనిర్మాణంలో, మొదటి పంక్తి సిస్టమ్ కాల్‌ల కోసం లైబ్రరీని చూపుతుంది. రెండవ లైన్‌లో, fd అనేది ఫైల్ డిస్క్రిప్టర్‌ని సూచిస్తుంది, వాస్తవానికి ఇది ప్రక్రియ యొక్క ఓపెన్ ఫైల్‌ని పేర్కొనే సంఖ్య. కీవర్డ్ *బఫ్ అంటే బఫర్. ఇందులో ఏదైనా డేటా ఉంటుంది. తదుపరిది లెక్క. ఇది బఫర్ నుండి ఫైల్ డిస్క్రిప్టర్‌కు వ్రాయవలసిన బైట్ల సంఖ్య.







అవసరాలను ఇన్‌స్టాల్ చేయండి:

ఏదైనా సి లాంగ్వేజ్ కోడ్‌ని అమలు చేయడానికి, మీరు ముందుగా లైనక్స్ పంపిణీలో కొన్ని ప్యాకేజీలను ఇన్‌స్టాల్ చేయాలి. మీరు రైట్ సిస్టమ్ కాల్‌కు సంబంధించి మరింత సమాచారాన్ని చూడాలనుకుంటే, అలా చేయడానికి మీరు manpages-dev ప్యాకేజీని ఇన్‌స్టాల్ చేయాలి. Ctrl+Alt+T సత్వరమార్గ కీని ఉపయోగించి టెర్మినల్‌ని తెరవడానికి. దీన్ని తెరిచిన తర్వాత, క్రింద ఉన్న apt ఇన్‌స్టాల్ కమాండ్‌ని వ్రాయండి మరియు మ్యాన్‌పేజీలను ఇన్‌స్టాల్ చేయడానికి manpages-dev కీవర్డ్‌ను రాయండి.



$సుడోసముచితమైనదిఇన్స్టాల్manpages-dev



మ్యాన్‌పేజీలను ఇన్‌స్టాల్ చేయడానికి కొంత సమయం పడుతుంది. ఇది పూర్తయ్యే వరకు వేచి ఉండండి.





ఇన్‌స్టాల్ చేసిన తర్వాత, షెల్‌లోని దిగువ మ్యాన్ కమాండ్ ద్వారా రైట్ సిస్టమ్ కాల్ గురించి అదనపు సమాచారాన్ని మీరు చూడవచ్చు.



$మనిషి 2 వ్రాయడానికి

వ్రాత ఆదేశం కోసం అవుట్‌పుట్ మ్యాన్ పేజీ క్రింద ఇవ్వబడింది. మీరు దాని గురించి సమాచారాన్ని చదవవచ్చు. మాన్యువల్ నుండి నిష్క్రమించడానికి q నొక్కండి.

ఇప్పుడు C భాషలో పని చేయడానికి మీ Linux సిస్టమ్‌లో Gcc ప్యాకేజీని ఇన్‌స్టాల్ చేసే సమయం వచ్చింది. దాని కోసం, షెల్‌ని తెరిచి, కింది apt ఇన్‌స్టాల్ కమాండ్‌ని వ్రాయండి, తరువాత gcc కీవర్డ్ రాయండి.

$సుడోసముచితమైనదిఇన్స్టాల్ gcc

ఇంతలో, ఇన్‌స్టాలేషన్ సమయంలో, y ని కొనసాగించడానికి మరియు దానిని ఆపడానికి n నొక్కడం ద్వారా సంస్థాపన యొక్క ఈ చర్యను నిర్ధారించమని మిమ్మల్ని అడగవచ్చు. కాబట్టి, y కీని నొక్కండి మరియు Enter కీని నొక్కండి.

ఇది మీ సిస్టమ్‌లో కొన్ని నిమిషాల్లో ఇన్‌స్టాల్ చేయబడుతుంది మరియు దిగువ స్నాప్‌షాట్‌లో చూపిన విధంగా అవుట్‌పుట్ యొక్క చివరి పంక్తులు ఉంటాయి.

ఉదాహరణలు:

మా లైనక్స్ డిస్ట్రిబ్యూషన్‌లో రైట్ సిస్టమ్ కాల్ యొక్క కొన్ని ఉదాహరణలు చూద్దాం. అందువల్ల, కమాండ్-లైన్ షెల్‌ను తెరిచి, డాట్ సి ఎక్స్‌టెన్షన్‌తో కొత్త సి ఫైల్‌ను సృష్టించండి. త్వరగా సృష్టించడానికి మరియు తెరవడానికి మీరు దిగువ నానో ఆదేశాన్ని ఉపయోగించాలి. మేము దానికి new.c గా పేరు పెట్టాము.

$నానోకొత్త సి

దిగువ విండో తెరవబడుతుంది. ఇప్పుడు మీరు ఈ ఫైల్‌లో అతికించిన కోడ్‌ని వ్రాయాలి. ఈ కోడ్‌లో, మేము ముందుగా unistd.h లైబ్రరీని చేర్చాము. అప్పుడు మేము ప్రధాన ఫంక్షన్‌ను సృష్టించాము మరియు ఈ ఫంక్షన్‌లో, మేము ఒక రైట్ సిస్టమ్ కాల్‌ను సృష్టించాము. ఈ సిస్టమ్ కాల్‌లో, మొదటి పరామితి ఫైల్ డిస్క్రిప్టర్. ఈ సందర్భంలో, పూర్ణాంకం 1 అవుట్‌పుట్ పరికర స్క్రీన్‌ను సూచిస్తుంది మరియు అది స్థిరంగా ఉంటుంది. కాబట్టి మా అవుట్‌పుట్ తెరపై చూపబడుతుంది. రెండవ పరామితి బఫర్ డేటాను చూపుతుంది. మీరు దానికి ఏదైనా జోడించవచ్చు. మరియు చివరి పరామితి బఫర్ పారామీటర్‌లో ఇచ్చిన డేటా కోసం కౌంట్ సంఖ్యను చూపుతుంది. మేము 5 ను కౌంట్ నంబర్‌గా పేర్కొన్నట్లుగా, ఇది బఫర్ డేటా యొక్క మొదటి 5 బైట్‌లను మాత్రమే చూపుతుంది మరియు మిగిలి ఉన్న బైట్‌లను విస్మరిస్తుంది. Ctrl+S సత్వరమార్గం కీని ఉపయోగించి ఈ కోడ్‌ని సేవ్ చేయండి మరియు Ctrl+X ఆదేశాన్ని ఉపయోగించి ఈ ఫైల్ నుండి నిష్క్రమించండి.

#చేర్చండి

Int ప్రధాన()

{వ్రాయడానికి(1అక్సా యాసిన్5);}

ఇప్పుడు టెర్మినల్‌లో, కొత్తగా సృష్టించిన కోడ్‌ను ఫైల్ పేరుతో కంపైల్ చేయడానికి దిగువ gcc ఆదేశాన్ని ప్రయత్నించండి.

$gccకొత్త సి

రన్ టైమ్‌లో సృష్టించబడిన డిఫాల్ట్ a.out ఫైల్‌ను ఉపయోగించి ఈ కోడ్‌ని తనిఖీ చేద్దాం. కాబట్టి, రైట్ సిస్టమ్ కాల్ అవుట్‌పుట్‌ను తనిఖీ చేయడానికి దిగువ a.out ఆదేశాన్ని ప్రయత్నించండి. ప్రస్తుత డైరెక్టరీ నుండి ఫైల్‌ను ఎంచుకోవడానికి మేము దానిని ./ తో ఉపయోగించాలి.

$./a. అవుట్

కౌంట్ నంబర్ 5 కారణంగా మీరు చూడగలిగే అవుట్‌పుట్ అక్సా అనే పదాన్ని మాత్రమే ప్రదర్శిస్తుంది.

మన కోడ్‌ని కొద్దిగా మార్చుకుందాం. మా బఫర్ డేటా అక్సా యాసిన్‌లో మొత్తం 11 బైట్‌లు ఉన్నందున మేము కౌంట్ సంఖ్యను 11 కి మార్చాము. కాబట్టి ఈసారి, అవుట్‌పుట్ స్ట్రింగ్ డేటా అక్సా యాసిన్ మొత్తం బైట్‌లను చూపుతుంది. ఈ ఫైల్‌ని Ctrl+S ఉపయోగించి సేవ్ చేయండి మరియు Ctrl+X షార్ట్‌కట్ కీని ఉపయోగించి నిష్క్రమించండి.

Linux పంపిణీ కోసం కొత్తగా ఇన్‌స్టాల్ చేసిన gcc కంపైలర్‌ని ఉపయోగించి అప్‌డేట్ చేసిన కోడ్‌ని కంపైల్ చేద్దాం. New.c. వంటి ఫైల్ పేరుతో పాటు అదే gcc ఆదేశాన్ని ప్రయత్నించండి.

$gccకొత్త సి

క్రింద ఉన్న విధంగా మునుపటి a.out ఆదేశాన్ని ఉపయోగించి ఇప్పుడు అదే కోడ్ యొక్క అవుట్‌పుట్‌ను ప్రదర్శించండి. అవుట్‌పుట్ బఫర్ యొక్క పూర్తి స్ట్రింగ్ అక్సా యాసిన్‌ను చూపుతుంది.

$./a. అవుట్

బఫర్ డేటా కలిగి ఉన్న మొత్తం బైట్ల సంఖ్య కంటే ఎక్కువ కౌంట్ సంఖ్యను తీసుకున్నప్పుడు కోడ్ ఎలా పని చేస్తుందో చూద్దాం. కాబట్టి, మేము గణనను 30 గా ఉపయోగిస్తున్నాము. ఫైల్‌ను సేవ్ చేసి మూసివేయండి.

కింది విధంగా gcc ఆదేశాన్ని ఉపయోగించి అదే అప్‌డేట్ చేసిన ఫైల్‌ను కంపైల్ చేయండి.

$gccకొత్త సి

ఇప్పుడు a.out ఆదేశాన్ని ఉపయోగించి ఫైల్‌ను అమలు చేయండి, మరియు అవుట్‌పుట్ బఫర్ డేటాను అలాగే దిగువ ఉన్న స్నాప్‌షాట్ అవుట్‌పుట్‌లో ప్రదర్శించినట్లుగా కొంత చెత్త విలువను చూపుతుంది. $ ./A.out

మీరు అదే ఫైల్‌లోని దిగువ కోడ్‌ని ఉపయోగించి ఫైల్‌లో మొత్తం బైట్‌ల సంఖ్యను కూడా తనిఖీ చేయవచ్చు.

Gcc సూచనల ద్వారా కోడ్‌ను కంపైల్ చేయండి.

$gccకొత్త సి

అవుట్‌పుట్ a.out ఆదేశాన్ని ఉపయోగించి బఫర్ డేటా మరియు లైన్ బ్రేక్‌తో సహా మొత్తం బైట్‌ల సంఖ్యను చూపుతుంది.

$./a. అవుట్

ముగింపు:

ఈ ట్యుటోరియల్‌లో, సి లో రైట్ సిస్టమ్ కాల్‌ని ఉపయోగించాలనే భావనను మేము వివరించాము. ఈ ఆర్టికల్‌ని ఉపయోగించి రైట్ సిస్టమ్ కాల్ ఆలోచనను అర్థం చేసుకోవడానికి అన్ని ఉదాహరణలను ప్రయత్నించండి.