I've been trying to make a tag about questions related to how programs can determine their own filesystem path at runtime, because it is very hard to find such questions through keyword search -- there just doesn't seem to be a keyword for it.
The best name I could come up with for the tag was argv0. (See the "Proposed wiki" section for an explanation of the reasoning behind the tag name.)
I created the tag a couple of days ago, tagged 20 or so questions with it, and proposed a small tag wiki.
Unfortunately, someone decided he didn't like my tag, and untagged everything I had tagged, with messages like "We already have [argv], we don't need [argv0]. Manually burninating." For example, see http://stackoverflow.com/revisions/4774054/5
For some reason, I tried tagging one of the questions again to see if it was just a fluke, but someone else just rolled it back to the "burninating" edit. Since starting an edit war was not my goal, I decided not to try tagging anything else for the time being.
So, I assumed that either this had happened before my proposed tag wiki got looked at, or the wiki wasn't clear enough about what the tag was for, so I tried again with something longer, which was approximately the contents of the "Proposed wiki" section below. (Some details may have differed, because I forgot to save exactly the version I submitted, and I can't exactly retrieve it from the system now...)
I also attempted to prevent immediate disapproval by including the following plea as a comment:
<!-- NOTE: If you don't like this tag, please think of a better name, copy most of this content there, and tag http://stackoverflow.com/questions/933850/how-to-find-the-location-of-the-executable-in-c with it. -->
This does not seem to have had any effect; perhaps the tag wiki edit approval UI does not show the source code?
Questions about how a program can (and can't) find the path from which it is executing. Named after, but not limited to, argv in C, which always seems like it should help, but is actually totally inadequate for the task.
Whereas the argv tag is about dealing with POSIX/C-style (command-line) arguments in <language>, this tag is about how a program may (and may not) determine its own location at runtime.
This tag is named after C's
argv, because it always seems like it ought to help with this kind of thing. However, C's
argv is actually not at all reliable, for reasons covered pretty well in the question "how to find the location of the executable in C". Implementing this at all reliably therefore requires use of platform-specific interfaces. Really messy.
In other words, the tag name is essentially a mnemonic lie!
The same problem will of course afflict any other platform-neutral compiled-to-native-executable language in the same way, assuming it even provides access to what would have been
argv. [Objective] C[++] are of course all in the same boat, as are Haskell and Go.
"Interpreted" languages (i.e. those whose programs are normally executed by starting a designated "interpreter" program and passing it the path to the program to be started), on the other hand, can do much better than this: Since the interpreter must open the program to run it, it will have a complete (though possibly relative) and accurate path to the program. So, it's very simple for such languages to make this information available to programs somehow.
Plea for help
I really want to make these questions easier to find. I can't see this happening without some sort of tag, since there doesn't seem to be a convenient word or phrase in either English or computer-science-ese to use as a search term. Unfortunately, this also makes it hard to figure out what to call the tag in the first place.
So, please chime in with whatever you can think of that might help:
Better tag names
Words or phrases I may have missed
Ways to persuade people not to zap the tag in the tag wiki.