fork() funkcja - i wszystko jest wskazuje na NULL

0

Witam.
Mam nietypowe pytanie otoz w C pisze cos pod linuksa.

Mam funkcje ktora potrafi kopiowac z jednego miejsca w drugie , pojedyncze pliki/foldery/lub foldery z zawartoscia

wyglada ona tak:

void cpplus(char* srs, char* dst)
{


 int a = fork();
 if (a==0)
 {
   execlp("cp","cp","-rf",srs,dst,NULL);
 }
 else wait();

}

problemem jest jednak to, ze po powrocie z funkcji do miejsca w ktorym byla ona wywolana wszystko wskazuje na 0x0 (kazda zmienna jaka byla we wczesniejszym miejscu , tak mi sie wydaje przynajmniej).
i dostaje nastepujacy blad:

Program received signal SIGSEGV, Segmentation fault.

jezeli zastapie kopiowanie pusta funkcja - to wszystko dziala.

0

a może spróbuj tak:

string polecenie = "cp -rf " + srs + " " + dst;
system(polecenie.c_str());

ps pisane z pamięci

0

..co nie rozwiazuje problemu z fork+execlp, ktory powienien dzialac normalnie..

fork wykonuje sie? dodaj troche logowania na stderr i przesledz co faktycznie sie odpala.
srs, dst - sa na pewno poprawne?
ogolnie, to co opisujesz brzmi troche kosmicznie - tak jakby stos/EIP zostaly uszkodzony..

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