Q: How can my program discover the complete pathname to the executable from which it was invoked?
A: argv may contain all or part of the pathname, or it may contain nothing. You may be able to duplicate the command language interpreter's search path logic to locate the executable if the name in argv is present but incomplete. However, there is no guaranteed solution.
K&R1 Sec. 5.11 p. 111
K&R2 Sec. 5.10 p. 115
ISO Sec. 18.104.22.168.1
H&S Sec. 20.1 p. 416