Elysia is coding against POSIX?
I apologize for that huge banging sound you just heard -- that was my jaw hitting the floor.
Anyway, to comprehend the weird arguments to execlp(), think of it this way: the first parameter is the program to execute, that part is obvious. The following parameters will be used to populate the argv array of the newly executing program. As we know, the first entry in argv should be the name of the program itself, thus you pass it there as well. And the function has a variadic signature, so the compiler is unlikely to catch mistakes when calling it.
And.. in those moments you're thinking "POSIX really sucks..." Yeah, it does