Argumentele liniei de comandă în C explicate
Publicat: 2022-04-29Argumentele din linia de comandă sunt folosite atunci când un program trebuie controlat din exterior, nu din interior. Este o interfață text pentru dezvoltatori în care argumentele sunt transmise direct metodei primare.
Valorile care sunt transmise într-o funcție atunci când este apelată sunt denumite argumente. Cu alte cuvinte, un argument este un parametru care este transmis unei anumite metode atunci când este invocat.
Sintaxa :
int main() { /* … */ }
Codul de mai sus primește comanda și o transmite sistemului de operare al computerului pentru a rula. Aceste comenzi sunt întotdeauna invocate atunci când se execută un cod.
Argumentele din linia de comandă CC și C++ sunt destul de ușor de implementat datorită simplității și sintaxelor ușor descifrabile.
Pentru a transmite argumente în linia de comandă, funcția principală trebuie să fie definită de două argumente:
- Numărul total de argumente ale liniei de comandă
- Întreaga listă de argumente din linia de comandă
Sintaxa :
int main(int argc, char *argv[]) { /* … */ }
- argc (ARGument Count) este definit ca un tip de date întreg care stochează numărul total de argumente din linia de comandă. De înțeles, aceasta ar trebui să fie întotdeauna o valoare nenegativă.
- argv (ARGument Vector) denotă o matrice de pointeri de tipul de date caracter folosit pentru a stoca întreaga listă de argumente din linia de comandă.
Cu ajutorul liniei de comandă, dezvoltatorii pot accesa o serie de fișiere și foldere de pe computerele lor. Un anumit program care conține mai multe argumente de linie de comandă poate identifica rapid sursele sau destinațiile datelor date. De asemenea, are potențialul de a modifica funcționarea programului. Face procesul de construcție mai ușor de pus în controlul sursei.
În domeniul dezvoltării, o gamă largă de sarcini nu necesită vizualizare reală. În astfel de cazuri, toate funcțiile pot fi efectuate cu ajutorul argumentelor din linia de comandă. Există o cerință foarte rară pentru o interfață grafică literală. Acest lucru ajută la economisirea multor finanțe, efort și resurse.
Învață cursuri online de dezvoltare software de la cele mai bune universități din lume. Câștigați programe Executive PG, programe avansate de certificat sau programe de master pentru a vă accelera cariera.
Proprietăți | Argumentele liniei de comandă în C
Argumentele din linia de comandă au destul de multe proprietăți interesante și utile. Acestea sunt după cum urmează:
- Pentru a imprima numele programului, comanda trebuie să fie argv[0]
- argv[argc] este în esență un pointer nul
- Pentru a imprima primul argument oferit de utilizator, comanda trebuie să fie argv[1]
- Utilizatorul transmite argumente de linie de comandă de la terminal
- Utilizarea acestor comenzi este de a controla programele din exterior, în loc să fie nevoie să codificați valorile din interiorul programului.
- Argumentele din linia de comandă sunt transmise în orice moment funcției main().
- Primul argument land comandă este argv[1], în timp ce ultima comandă este argv[n]
Exemplu de argument de linie de comandă
Următorul este un program demonstrativ pentru argumentele liniei de comandă în C:
// Program C pentru a ilustra
// argumentele liniei de comandă
#include<stdio.h>
int main(int argc,char* argv[])
{
int counter;
printf(„Numele programului este: %s”,argv[0]);
if(argc==1)
printf(„\nNu s-a transmis niciun argument suplimentar în linia de comandă decât numele programului”);
if(argc>=2)
{
printf(“\nNumărul de argumente transmise: %d”,argc);
printf(„\n—-În continuare sunt transmise argumentele liniei de comandă—-“);
for(counter=0;counter<argc;counter++)
printf(„\nargv[%d]: %s”,contor,argv[contor]);
}
returnează 0;
}
Ieșirea diferă în funcție de diferite scenarii. Ele au fost explicate în continuare individual.
- Fara argument:
Pentru a produce următoarea ieșire, codul trebuie să fie executat fără a trece un argument:
Ieșire 1 -
$ ./a.out
Numele programului este: ./a.out
Nu a fost transmis niciun argument suplimentar în linia de comandă, în afară de numele programului
- Cu trei argumente:
Pentru a produce următoarea ieșire, codul trebuie să fie executat cu trei argumente.
Ieșire 2 -
$ ./a.out Prima a doua a treia
Numele programului este: ./a.out
Numărul de argumente aprobate: 4
—- Următoarele sunt transmise argumentele liniei de comandă—-
argv[0]: ./a.out
argv[1]: În primul rând
argv[2]: În al doilea rând
argv[3]: Al treilea
- Cu un singur argument:
Codul trebuie să fie compilat și executat cu un singur argument care trebuie separat prin spațiu în timp ce se află între ghilimele pentru a produce următoarea ieșire.
Ieșire 3 -
$ ./a.out „Primul al doilea al treilea”.
Numele programului este: ./a.out
Numărul de argumente aprobate: 2
—- Următoarele sunt transmise argumentele liniei de comandă—-
argv[0]: ./a.out
argv[1]: primul al doilea al treilea
- Cu un singur argument între ghilimele și separate prin spațiu:
Codul trebuie compilat și executat cu un singur argument separat de spațiu, dar între ghilimele simple pentru a produce următoarea ieșire.
Ieșire 4 -
$ ./a.out „Primul al doilea al treilea”
Numele programului este: ./a.out
Numărul de argumente aprobate: 2
—- Următoarele sunt transmise argumentele liniei de comandă—-
argv[0]: ./a.out
argv[1]: primul al doilea al treilea
Avantajele argumentelor din linia de comandă în C
Există mai multe avantaje ale utilizării argumentelor liniei de comandă în C. Acestea sunt după cum urmează:
- Argumentele din linia de comandă în C pot fi folosite atunci când un programator sau utilizator dorește să transmită valorile programului din interior, în loc să facă acest lucru intern.
- Aplicațiile din linia de comandă pot fi făcute foarte ușor pentru a fi utilizate în fișiere batch sau scripturi. Acest lucru vine ca un ajutor imens în ceea ce privește testarea automată sau build-urile.
- Linia de comandă este mai ușor de dezvoltat dacă programatorii scriu instrumentele în loc să le folosească. Introducerea argumentelor este considerată a fi o sarcină mult mai complexă și consumatoare de timp decât eliberarea unui flux de text.
- Fluxurile de intrare, ieșire și erori pot fi foarte ușor redirecționate atunci când informațiile pot fi trimise sau primite din diferite fișiere și aplicații.
- Mecanismul de returnare a erorilor în argumentele liniei de comandă este destul de standard și simplu.
- Când un programator sau un utilizator încearcă să obțină acces de acasă sau de pe drum, practic în timp ce este mobil, utilizarea prin intermediul shell-urilor de la distanță sau al altor conexiuni similare facilitează îndeplinirea sarcinilor în cel mai puțin.
- Pentru funcția de specificare a mai multor fișiere, sunt prezente standarde definite de sintaxă wildcard, care se bazează pe cunoștințele existente ale dezvoltatorului sau programatorului.
- Liniile de comandă sunt convingătoare și extrem de rapide.
Vorbind despre avantajele diferitelor argumente ale liniei de comandă, următorul este un alt exemplu detaliat sau o demonstrație a modului în care ar trebui să le implementați.
#include <stdio.h>
#include <conio.h>
//se apelează metoda principală căreia îi sunt transmise programului argumentele liniei de comandă
int main(int argc, char *argv[])
{
// este definită o variabilă întreagă
int a;
//dacă se aplică condiția pentru a verifica dacă numărul de argumente transmise programului este mai mare sau egal cu doi, iar dacă condiția este adevărată, sunt tipărite argumentele liniei de comandă transmise programului. În caz contrar, niciun argument nu este transmis programului este tipărit
if(argc >= 2)
{
printf(„Argumentele transmise programului sunt:\n”);
pentru(a = 1; a < argc; a++)
{
printf(„Argumentul transmis programului este: %s\t”, argv[a]);
}
}
altfel
{
printf(„Niciun argument nu este transmis programului\n”);
}
returnează 0;
}
Ieșire:
Niciun argument nu este transmis programului.
Argumentele liniei de comandă sunt transmise programului în codul menționat mai sus prin apelarea metodei principale. Următorul pas este definirea unei variabile întregi. Apoi, condiția este transmisă pentru a verifica dacă numărul de argumente transmise programului este mai mare sau egal cu 2. Argumentele din linia de comandă transmise programului sunt tipărite dacă condiția este adevărată. Dacă nu, niciun argument nu este transmis programului și imprimat.
Concluzii
Aflați mai multe despre importanța argumentelor din linia de comandă în C și C++, înscriindu-vă la programul Executive PG de la upGrad în Dezvoltare Software – Specializare în Dezvoltare Full Stack . Cursul de 13 luni este conceput pentru a ajuta aspiranții profesioniști IT să stăpânească Java, Spring, Hibernate, HTML, React, Git și o serie de alte limbaje și instrumente de programare pentru a construi aplicații complexe precum Quora și Swiggy.
Programul oferă, de asemenea, o certificare executivă gratuită de 4 luni în știința datelor și învățarea automată.
Care sunt dezavantajele de bază cu care trebuie să se confrunte programatorii în timp ce implementează argumentele liniei de comandă în C?
Chiar dacă argumentele liniei de comandă în C sunt convenabile pentru dezvoltatori și programatori, ele au câteva dezavantaje. Oamenii care nu au cunoștințele de bază și nu sunt obișnuiți să lucreze cu aceste comenzi se pot dovedi a fi destul de dificil de învățat și de adaptare, mai ales într-o perioadă scurtă. Cu toate acestea, aceasta nu este o problemă pentru programatorii și dezvoltatorii aced. Dar se dovedește a fi o piedică uneori pentru angajații juniori care ar putea veni din domenii diferite sau adiacente. Mai mult, argumentele din linia de comandă au nevoie de o tastatură pentru a fi implementate și executate. Acest lucru devine adesea o barieră dacă cineva trebuie să îl acceseze prin telefon sau iPad, etc.
Care sunt delimitatorii care sunt utilizați pentru a separa argumentele din linia de comandă?
Pentru a separa argumentele liniei de comandă, se folosesc în general spații goale. Ele separă numele comenzii de parametrii săi și separă diferiți parametri unul pe altul. De asemenea, sunt utile în timp ce separă o listă de valori diferite. Semnele multiple sunt de obicei tratate ca un singur semifabricat. Singura excepție de la aceasta se întâmplă într-un șir între ghilimele sau un comentariu cuprins între ghilimele simple.
Este posibil să convertiți argumentele liniei de comandă?
Toate argumentele liniei de comandă sunt transmise ca șir. Valorile numerice trebuie întotdeauna convertite de către programatori sau utilizatori în formele lor interne, folosind efort manual. Funcția principală primește întotdeauna parametrii săi, care de obicei este o matrice de șiruri. Acesta este singurul argument al funcției pe care funcția principală îl acceptă. Tipurile de date șir sunt făcute pentru a fi utilizate în timpul stocării argumentelor din linia de comandă.