当前位置: 代码迷 >> C语言 >> 【求助】如何获得程序的文件名
  详细解决方案

【求助】如何获得程序的文件名

热度:437   发布时间:2008-03-26 13:35:41.0
【求助】如何获得程序的文件名
如题,我想知道
怎样获得程序的文件名(要带有后缀名的)

哪位能帮助一下,谢谢。

[[it] 本帖最后由 svjh 于 2008-3-26 14:15 编辑 [/it]]
搜索更多相关的解决方案: 文件名  后缀  

----------------解决方案--------------------------------------------------------
__FILE__
----------------解决方案--------------------------------------------------------
这个只是获得源代码的文件名罢了,
我想要获得程序自身的文件名,不是源代码的。
----------------解决方案--------------------------------------------------------
argv[0]
----------------解决方案--------------------------------------------------------
#include <stdio.h>

int main(int argc, int * argv[])
{
    printf("%s\n", argv[0]);
    return 0;
}
----------------解决方案--------------------------------------------------------
命令行参数
----------------解决方案--------------------------------------------------------
如果用命令行参数的话,
当我用以下命令启动程序时:


传递的argv[0]就是"test",而并非"test.exe"
有什么方法可以在任何情况下都能获得程序文件名呢?
有哪个函数可以吗?
----------------解决方案--------------------------------------------------------
[bo]以下... [/bo]

我用的TC2.0,没有发现啥问题。
程序代码:
#include <stdio.h>
int main(int argc,char *argv[])
{
    int i;
    for(i=0;i<argc;i++)
    {
        printf("%s\n",argv[i]);
    }
}

输入:
cd c:\tc\output
cmdline heihei lala hoho
回车:

输出结果:
C:\TC\OUTPUT\CMDLINE.EXE
heihei
lala
hoho
----------------解决方案--------------------------------------------------------
#include <stdio.h>

int main(int argc, int * argv[])
{
    printf("%s\n", argv[0]);
    return 0;
}
----------------解决方案--------------------------------------------------------
#include <stdio.h>

int main(int argc, int * argv[])
{
    printf("%s.exe\n", argv[0]);  //呵呵,在Linux下就不存在这个问题
    return 0;
}
----------------解决方案--------------------------------------------------------
  相关解决方案