getcwd() funziona ma mi restituisce sempre l'indirizzo home (ho provato a vedere che indirizzo rilevava con un printf).

Per caso gli eseguibili in C partono sempre dalla home del computer?
Ne sapete qualcosa in più voi?