Programe Pascal sau C cu argumente

Sintaxa generala a comenzii DOS de lansare in executie a unui program (aplicatie) este:

nume-exe arg1 arg2 ... arg-n
unde arg1...arg-n sunt niste siruri de caractere. Programul are posibilitatea de-a afla cu ce argumente a fost apelat.

De asemenea, orice program furnizeaza sistemului, in momentul terminarii, un cod de retur. Acesta poate fi testat, din fisierul de comenzi din care se apeleaza programul, prin constructia if errorlevel.

Un program scris in Turbo Pascal are la dispozitie functiile

  function paramcount:integer;
  function paramstr(i:integer):string;
Functia paramcount returneaza numarul de argumente cu care programul a fost apelat. paramstr(i) returneaza valoarea argumentului i (i trebuie sa fie intre 1 si valoarea returnata de paramcount). In plus, paramstr(0) returneaza numele complet al fisierului executabil.

Codul de return al unui program scris in Pascal este implicit 0. Pentru a furniza alt cod de retur, programul trebuie sa se termine apeland halt(cod_de_retur).

Programele scrise in C vor avea functia main declarata ca

int main(int argc, char* argv[])
sistemul initializand cele doua argumente in modul urmator: argc va fi cu 1 mai mare decat numarul argumentelor, iar argv[i] este echivalent cu paramstr(i)

Codul de retur furnizat este valoarea returnata de functia main; altfel spus, plasand instructiunea return cod; in functia main. O alta posibilitate este sa terminam programul apeland functia exit(cod);

Exemple si exercitii

1. Sa se scrie un program care afiseaza argumentele primite (se comporta ca si comanda echo).

Rezolvare

2. Sa se scrie un program care afiseaza argumentele primite, punand la sfarsit textul ? (y/n) , dupa care, daca utilizatorul raspunde y returneaza codul de retur 0, altfel da cod de retur 1. Pe baza acestui program, scrieti un fisier de comenzi care primeste un numar oarecare de argumente nume de fisiere si pentru fiecare dintre ele cere confirmarea utilizatorului pentru stergere.

Rezolvare

3. Sa se afiseze lista fisierelor cu extensia pas si mai mari de 4kB din directorul curent.

4. Sa se concateneze fisierele, cu extensia data ca parametru si modificate in ultimele 24 de ore, din directorul curent. Rezultatul va fi scris intr-un fisier cu numele dat de cel de-al doilea parametru.

5. Sa se recompileze toate programele Pascal din directorul curent pentru care nu exista executabil sau care au fost modificate de la ultima compilare. Indicatie: compilatorul Pascal este programul tpc din directorul bin din instalarea Turbo Pascal.

Note

  1. Programele scrise in Pascal trebuie compilate cu destinatia pe disc (meniul Compile|Destination)
  2. Pentru a testa din mediu programele cu argumente, inainte de a lansa programul de sub mediu se va alege meniul Run|Parameters si in caseta de dialog ce se deschide se vor tasta argumentele dorite. Codul de retur se afla, dupa rularea programului, in cutia de dialog deschisa prin meniul Compile|Information.


Arhitectura Calculatoarelor

9 Oct 2001
Radu-Lucian LUPSA