ho scritto, compilato e messo questi due file sulla scrivania

file compilato così: gcc ciao.c -o ciao
codice:
#include <stdio.h>
int main(int a, char **ab){
printf("exec riuscita");
}
codice:
#include <stdio.h>
#include <unistd.h>
int main(){
execlp("ciao", NULL);
}
il problema è che, se nella execlp non metto il path , non funziona
eppure a me hanno insegnato che se uso execp ci vuole il path, mentre con execlp se il file si trovano nella stessa cartella non serve, ma allora com'è possibile?

grazie