Skip navigation.
 
mlRe: Finding out executable location from a c program
FROM : Paul Sargent
DATE : Mon Nov 19 17:37:25 2007

On 19 Nov 2007, at 16:12, I. Savant wrote:

>>  I would need to find out the directory where the current executable
>> resides to find some stuff whose location I know relative to the
>> executable location.

>
> The first argument ( argv[0] ) is the path to your executable.


Not true. Argv[0] is the first argument given on the command line when 
your code was invoked. This might be a full path, or it might be just 
the executable name.

#include <stdio.h>

int main(int argc, char** argv) {
  printf("Arg 0 is %s\n", argv[0]);
  return 0;
}

Compiled and then placed into my path.

Dr-Stupid:~ pauls$ /Users/pauls/bin/a.out
Arg 0 is /Users/pauls/bin/a.out
Dr-Stupid:~ pauls$ bin/a.out
Arg 0 is bin/a.out
Dr-Stupid:~ pauls$ a.out
Arg 0 is a.out

There's no guaranteed consistency there, unless you know how it'll be 
invoked.

I can't think of a way of doing it. It's normal practise to put 
support files in a location like /usr/local/lib or similar rather than 
with the executable on Unix. On a Mac the solution is normally to 
package it inside the app bundle and use the API to access that.

Related mailsAuthorDate
mlFinding out executable location from a c program Antti Karanta Nov 19, 17:06
mlRe: Finding out executable location from a c program I. Savant Nov 19, 17:12
mlRe: Finding out executable location from a c program Antti Karanta Nov 19, 17:24
mlRe: Finding out executable location from a c program Paul Sargent Nov 19, 17:37
mlRe: Finding out executable location from a c program I. Savant Nov 19, 17:44
mlRe: Finding out executable location from a c program Christiaan Hofman Nov 19, 17:51
mlRe: Finding out executable location from a c program Roy Lovejoy Nov 19, 23:53
mlRe: Finding out executable location from a c program Scott Stevenson Nov 19, 23:55
mlRe: Finding out executable location from a c program Clark Cox Nov 20, 03:09
mlRe: Finding out executable location from a c program Scott Stevenson Nov 20, 06:31
mlRe: Finding out executable location from a c program Clark S. Cox III Nov 20, 06:37
mlRe: Finding out executable location from a c program Alastair Houghton Nov 20, 13:36
mlRe: Finding out executable location from a c program Antti Karanta Nov 23, 21:22
mlRe: Finding out executable location from a c program Antti Karanta Nov 23, 21:52
mlRe: Finding out executable location from a c program Douglas Davidson Nov 26, 19:44
mlRe: Finding out executable location from a c program Alastair Houghton Nov 27, 13:11