Path: utzoo!attcan!uunet!aplcen!samsung!zaphod.mps.ohio-state.edu!wuarchive!wums2!bethge From: bethge@wums.wustl.edu Newsgroups: comp.unix.questions Subject: How to get the pathname of the current executable? Message-ID: <1610.25d028a3@wums.wustl.edu> Date: 7 Feb 90 19:54:43 GMT Lines: 32 I am a 10+ year veteran of VMS programming who is trying to learn to like Unix. (Really!) It would help if I could find out how to port some of my favorite VMS tricks. I like to write programs that users can use without having to know details of their inner workings. Suppose a program needs some standard data which the user doesn't need to be concerned with, and which for various reasons needs to be read from a file rather than compiled in. The question is, how does the program find the file? My VMS solution is to keep the file in the same directory as the program executable, and use the system service which returns the full pathname of the cuurrently running executable, and get the disk, directory, etc. from that. But I don't know of a comparable system routine in Unix. I have looked at Unix programs which deal with this problem, and found that the pathname for the data file is hard-coded into the program. This of course means that the program has to be edited and recompiled if it becomes necessary to move the file. Environment variables are a better solution, but they require the user to define the environment variable before running the program. I could define the program as a shell script which defines the environment variable and then fires up the executable, but that's one more file to maintain. Is there a better (more transparent) way? ____________________________________________________________________ Paul H. Bethge bethge@wums.wustl.edu Washington University, St. Louis bethge@wums.bitnet