Skip navigation.
 
mlRe: Finding out executable location from a c program
FROM : Christiaan Hofman
DATE : Mon Nov 19 17:51:58 2007

On 19 Nov 2007, at 5:37 PM, Paul Sargent wrote:

>
> 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.
>


It can even be the location of a symlink if called that way.

> 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.


I also wouldn't know. There should be a way though, as internally 
NSBundle does.

Christiaan

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