poczatkujacy - system ()

0

Witam !
Jest sobie taki programik:


#include <unistd.h>
#include <stdio.h>

int main(void)
{
system("cd /tmp/polecenie && ./polecenie.sh");
return 0;
}

robi on tyle, że uruchami plik polecenie.sh zawarty w katalogu /tmp/polecenie. Wszystko chodzi super do momentu, gdy plik (katalog) nie znikną czy coś podobnego. Wtedy program wyrzuca informacje taką, jakbym ręcznie wpisał to co w system() do systemu. Wszystko wporządku, bo tak ma być ;-)

interesuje mnie jednak czy jest możliwość zrobienia tak, aby bez względu na obecność owego katalogu wynik działania programu zawsze był ten sam. Bo z jakimś polecenie.sh nie byłoby problemu, ale z innymi poleceniami systemowymi.. cinko :/

Czy ich kod trzeba wklejać do kodu naszego programu, a jeżeli tak to jakim sposobem ?
czy jako

void nazwa_polecenia(void)
{
kod
}

a potem wywoływać poprzez np. nazwa_polecenia() , czy innym sposobem, bo ten który napisałem tutaj jest dość.. nie no nie nadaje się ;-)

pozdrawiam i z góry dzięki !

(jakby ktoś nie zauważył to systemem, na jakim to wykonuje jest Linux ;-) )

0

Nie rozumiem troche tego stwierdzenia: "jesli nie bedzie tego katalogu". Jak mozesz miec plik wykonywalny w katalogu, ktorego nie bedzie?

A moze chodzi Ci o to, zeby uruchomic program nie podajac w ogole katalogu, w ktorym sie znajduje? No to system("polecenie.sh") zadziala, jesli tylko polecenie.sh bedzie w katalogu wpisanym do $PATH.

0

plik, którego źródło widzicie nie leży w tym katalogu, natomiast leży w nim plik polecenie.sh , do którego jest odwołanie w system()

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0