[so] [Tema1 - SO] Folosire bash pentru rularea comenzilor [Was: Re: intrebare SO]

Daniel Baluta daniel.baluta at gmail.com
Mon Mar 7 16:31:18 EET 2011


Salut Adrian,

Trimite te rog de acum înainte întrebările referitoare la teme
și pe lista de discuții ([1]).

2011/3/7 Lungu Adrian <lungu_a_ro at yahoo.com>
>
>   Salut. Am si eu o noua intrebare ... legat de tema 1 SO (nu prima , adica 0) .. ce functii din familia exec avem voie folosi (if any) ? parca citisem undeva ceva de o functie fcntl sau cam asa , care le facea redundante pe cele exec.. eu am lucrat la tema folosind

Poti folosi orice funcție din familia execv ([1]) atâta timp cât îți
îndeplinește scopul
și respectă condițiile din enunț.

> const char *argv[] = {"/bin/bash", "-c", command, NULL};
> execv("/bin/bash", (char *const *)argv);

Nu e corect și nici eficient să folosești shell-ul bash pentru a-ți
rula ție comenzile.
Tu trebuie să simulezi ce face shell-ul folosind fork + execv.

Ce se întâmplă pe un sistem care nu are bash instalat? :)

>
>
> pentru comenzile simple ...
> si acum vad la FAQ ca nu am voie ... also, putem folosi fgets ca
>  sa citim comanda de la stdin ?

Poți folosi fgets.

>  n-ar fi o problema prea mare sa o
> inlocui cu o alta functie din aceeasi familie (gen execp) , dar
> mi-e frica sa nu fiu nevoit sa restructurez (radical) codul
> pentru a lucra cu o functie "foarte" diferita...

thanks,
Daniel.

[1] http://elf.cs.pub.ro/so/wiki/resurse/lista-discutii


More information about the so mailing list