forse non hai ben inteso,
il problema non è come scrivere un path relativo, il problema è conoscere la directory del programma.

vedi, io facevo così:

finp =fopen("punctin.txt", "r");

convinto che venisse interpretato come "apri il file punctin.txt presente nella directory corrente", in realtà è così solo se lancio l'eseguibile cliccando sull'eseguibile.
se lo lancio da qualche altro programma (o dal compilatore stesso) il file punctin.txt non viene trovato.
Se invece metto il path assoluto sì.
(Ti ricordo che lavoro con DEV-C++ su WinXp)

Il problema è che io non so a priori il path assoluto dell'eseguibile, so solo che il file punctin.txt starà nella stessa cartella dell'eseguibile.
chiaro?