By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
429,401 Members | 793 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 429,401 IT Pros & Developers. It's quick & easy.

How can I retrieve the full path of running exe

P: n/a
I am running an exe created in C. I need the full path (absolute path)
of this exe. In the first argument of main, I am getting the exe name.
How can I get the full path for this exe.

Jun 21 '07 #1
Share this Question
Share on Google+
4 Replies


P: n/a
In article <11*********************@w5g2000hsg.googlegroups.c om>,
<so***********@gmail.comwrote:
>I am running an exe created in C. I need the full path (absolute path)
of this exe. In the first argument of main, I am getting the exe name.
How can I get the full path for this exe.
There is no portable way to do that.

The C language doesn't even promise that the first argument of main
will have any form of the executable name. (This fact is actively
used in many Unix operating systems.)

Some versions of *some* operating systems provide mechanisms that
do what you want, but they are not necessarily simple to use,
and the path retrieved might be -some- absolute path to reach
the executable rather than the one that was actually used to
invoke it. Details are operating system version dependant, so you
will need to ask in a newsgroup appropriate for your operating system.

(It's not uncommon for it to be pretty messy when it is possible at all.
Messy enough that OS gurus might think it isn't possible when really
it might only take about 3/4 of an hour of investigative work rooting
around in the operating system internals. Or it might be doable on
some operating systems if you devoted a week to it. But it
is completely impossible on some operating systems.)
--
Is there any thing whereof it may be said, See, this is new? It hath
been already of old time, which was before us. -- Ecclesiastes
Jun 21 '07 #2

P: n/a
On Jun 21, 12:39 pm, rober...@ibd.nrc-cnrc.gc.ca (Walter Roberson)
wrote:
In article <1182409466.377219.97...@w5g2000hsg.googlegroups.c om>,

<somank.sha...@gmail.comwrote:
I am running an exe created in C. I need the full path (absolute path)
of this exe. In the first argument of main, I am getting the exe name.
How can I get the full path for this exe.

There is no portable way to do that.

The C language doesn't even promise that the first argument of main
will have any form of the executable name. (This fact is actively
used in many Unix operating systems.)

Some versions of *some* operating systems provide mechanisms that
do what you want, but they are not necessarily simple to use,
and the path retrieved might be -some- absolute path to reach
the executable rather than the one that was actually used to
invoke it. Details are operating system version dependant, so you
will need to ask in a newsgroup appropriate for your operating system.

(It's not uncommon for it to be pretty messy when it is possible at all.
Messy enough that OS gurus might think it isn't possible when really
it might only take about 3/4 of an hour of investigative work rooting
around in the operating system internals. Or it might be doable on
some operating systems if you devoted a week to it. But it
is completely impossible on some operating systems.)
--
Is there any thing whereof it may be said, See, this is new? It hath
been already of old time, which was before us. -- Ecclesiastes
Refer getcwd(3) man page.
get_current_dir_name() returns the current working directory of
running exe.

Jun 21 '07 #3

P: n/a
ga*************@gmail.com wrote:
On Jun 21, 12:39 pm, rober...@ibd.nrc-cnrc.gc.ca (Walter Roberson)
wrote:
>In article <1182409466.377219.97...@w5g2000hsg.googlegroups.c om>,

<somank.sha...@gmail.comwrote:
>I am running an exe created in C. I need the full path (absolute path)
of this exe. In the first argument of main, I am getting the exe name.
How can I get the full path for this exe.

There is no portable way to do that.

The C language doesn't even promise that the first argument of main
will have any form of the executable name. (This fact is actively
used in many Unix operating systems.)

Some versions of *some* operating systems provide mechanisms that
do what you want, but they are not necessarily simple to use,
and the path retrieved might be -some- absolute path to reach
the executable rather than the one that was actually used to
invoke it. Details are operating system version dependant, so you
will need to ask in a newsgroup appropriate for your operating system.

(It's not uncommon for it to be pretty messy when it is possible at all.
Messy enough that OS gurus might think it isn't possible when really
it might only take about 3/4 of an hour of investigative work rooting
around in the operating system internals. Or it might be doable on
some operating systems if you devoted a week to it. But it
is completely impossible on some operating systems.)
--
Is there any thing whereof it may be said, See, this is new? It hath
been already of old time, which was before us. -- Ecclesiastes

Refer getcwd(3) man page.
get_current_dir_name() returns the current working directory of
running exe.
(a) that's a Linux/Unix/Posix thing: it's OS-dependent.

(b) it's also irrelevant. The OP asked for the full path name of
the running executable, not the full path name of the process
in which it's running.

(c) snip signatures.

--
Chris "didn't get to D" Dollin

Hewlett-Packard Limited Cain Road, Bracknell, registered no:
registered office: Berks RG12 1HN 690597 England

Jun 21 '07 #4

P: n/a
"ga*************@gmail.com" <ga*************@gmail.comwrites:
On Jun 21, 12:39 pm, rober...@ibd.nrc-cnrc.gc.ca (Walter Roberson)
wrote:
>In article <1182409466.377219.97...@w5g2000hsg.googlegroups.c om>,
<somank.sha...@gmail.comwrote:
>I am running an exe created in C. I need the full path (absolute path)
of this exe. In the first argument of main, I am getting the exe name.
How can I get the full path for this exe.

There is no portable way to do that.

The C language doesn't even promise that the first argument of main
will have any form of the executable name. (This fact is actively
used in many Unix operating systems.)
[snip]
Refer getcwd(3) man page.
get_current_dir_name() returns the current working directory of
running exe.
Walter's answer, that there is no portable way to do that, is correct.
The getcwd function is system-specific -- and it doesn't do what the
original poster was asking about anyway.

--
Keith Thompson (The_Other_Keith) ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <* <http://users.sdsc.edu/~kst>
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
Jun 21 '07 #5

This discussion thread is closed

Replies have been disabled for this discussion.