nahrada volani system() pomoci exec s presmerovanim
Milan Kopacka
mkop5230 na ss1000.ms.mff.cuni.cz
Pondělí Duben 27 21:36:23 CEST 1998
On Mon, 27 Apr 1998, Petr Skoda wrote:
>A ted prosba - umel by nekdo poradit jak se zbavit toho volani system()
>pomoci shellu a presmerovani aby se volala jen ta binarka ( ale neni mi
>jasne jak vnutit funkci exec() jako argument to presmerovani ),
>nebo jeste lepe nejake korektni reseni pri zachovani moznosti vytvor
>soubor s prikazy zevne, vykonej, vymaz.
Jestli tomu dobre rozumim, potrebujete spustit radic a pockat
az dobehne.
volani
> system("/usr/local/bin/radic </home/nassystem/comfile");
Nahradte necim jako
if (fork()==0){
int f=open("/home/nassystem/comfile", O_RDONLY);
close(0);
dup(f);
close(f);
execl("/usr/local/bin/radic","radic",NULL);
}
wait(NULL);
Samozrejme si osetrete navratove chybove kody.
Milan Kopacka
Další informace o konferenci Linux