C程序如何确定并打印自己的可执行文件的位置?

时间:2013-05-17 22:10:40

标签: c file-io

我想写一个打印其位置的C程序。

例如,如果我将程序exe文件放到D:\myfolder\myc_prog,它应该打印相同的位置D:\myfolder\myc_prog,如果我将该exe文件放到位置E:\mynewfold\,它应该打印更新位置E:\mynewfold

实际上,我不知道如何做到这一点,这就是为什么我无法提供这个问题的详细信息。

2 个答案:

答案 0 :(得分:2)

由于您使用的是Windows,GetModuleFileName应该可以解决问题。只需为NULL参数传递hModule即可。如果要处理长文件名(通常这样做),请务必仔细阅读文档。您还必须删除可执行文件的名称以获取目录路径。一种快速而肮脏的方法是删除最后\之后的所有内容。

答案 1 :(得分:1)

#include <Windows.h>
#include <stdio.h>

int main(int argc, char *argv[]){
    char buff[256];
    if(GetCurrentDirectory(256, buff)){//get current directory
        printf("%s\n", buff);
    }
    return 0;
}