Search the FAQ Archives

3 - A - B - C - D - E - F - G - H - I - J - K - L - M
N - O - P - Q - R - S - T - U - V - W - X - Y - Z
faqs.org - Internet FAQ Archives

Unix - Frequently Asked Questions (4/7) [Frequent posting]
Section - How can an executing program determine its own pathname?

( Part1 - Part2 - Part3 - Part4 - Part5 - Part6 - Part7 - Single Page )
[ Usenet FAQs | Web FAQs | Documents | RFC Index | Business Photos and Profiles ]


Top Document: Unix - Frequently Asked Questions (4/7) [Frequent posting]
Previous Document: How do I find the name of an open file?
Next Document: How do I use popen() to open a process for reading AND writing?
See reader questions & answers on this topic! - Help others by sharing your knowledge

4.4)  How can an executing program determine its own pathname?

      Your program can look at argv[0]; if it begins with a "/", it is
      probably the absolute pathname to your program, otherwise your
      program can look at every directory named in the environment
      variable PATH and try to find the first one that contains an
      executable file whose name matches your program's argv[0] (which
      by convention is the name of the file being executed).  By
      concatenating that directory and the value of argv[0] you'd
      probably have the right name.

      You can't really be sure though, since it is quite legal for one
      program to exec() another with any value of argv[0] it desires.
      It is merely a convention that new programs are exec'd with the
      executable file name in argv[0].

      For instance, purely a hypothetical example:
        
        #include <stdio.h>
        main()
        {
            execl("/usr/games/rogue", "vi Thesis", (char *)NULL);
        }

      The executed program thinks its name (its argv[0] value) is
      "vi Thesis".   (Certain other programs might also think that
      the name of the program you're currently running is "vi Thesis",
      but of course this is just a hypothetical example, don't
      try it yourself :-)

User Contributions:

Comment about this article, ask questions, or add new information about this topic:

CAPTCHA




Top Document: Unix - Frequently Asked Questions (4/7) [Frequent posting]
Previous Document: How do I find the name of an open file?
Next Document: How do I use popen() to open a process for reading AND writing?

Part1 - Part2 - Part3 - Part4 - Part5 - Part6 - Part7 - Single Page

[ Usenet FAQs | Web FAQs | Documents | RFC Index ]

Send corrections/additions to the FAQ Maintainer:
tmatimar@isgtec.com (Ted Timar)





Last Update March 27 2014 @ 02:12 PM