Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   C Programming (http://www.velocityreviews.com/forums/f42-c-programming.html)
-   -   How can I retrieve the full path of running exe (http://www.velocityreviews.com/forums/t516240-how-can-i-retrieve-the-full-path-of-running-exe.html)

somank.sharma@gmail.com 06-21-2007 07:04 AM

How can I retrieve the full path of running exe
 
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.


Walter Roberson 06-21-2007 07:39 AM

Re: How can I retrieve the full path of running exe
 
In article <1182409466.377219.97010@w5g2000hsg.googlegroups.c om>,
<somank.sharma@gmail.com> wrote:
>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

ganesh.kundapur@gmail.com 06-21-2007 08:37 AM

Re: How can I retrieve the full path of running exe
 
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.com> wrote:
> >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.


Chris Dollin 06-21-2007 08:48 AM

Re: How can I retrieve the full path of running exe
 
ganesh.kundapur@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.com> wrote:
>> >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


Keith Thompson 06-21-2007 09:07 AM

Re: How can I retrieve the full path of running exe
 
"ganesh.kundapur@gmail.com" <ganesh.kundapur@gmail.com> writes:
> 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.com> wrote:
>> >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) kst-u@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"


All times are GMT. The time now is 02:03 AM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.