【问题标题】:How can a C program determine and print the location of its own executable?C 程序如何确定并打印它自己的可执行文件的位置?
【发布时间】:2013-05-17 22:10:40
【问题描述】:

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

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

实际上,我不知道该怎么做,这就是为什么我无法为这个问题提供太多细节。

【问题讨论】:

  • 使用 system("CMD_COMMANDS"); 会有帮助吗?表单 #include 以获取当前目录位置?
  • 您的标题是指当前工作目录,但您在问题中描述的是可执行文件的位置。它们是两种不同的东西。你要哪一个?
  • exe 文件的位置。实际上有人编辑了我的标题。
  • 我修正了标题并稍微更新了问题。

标签: c file-io


【解决方案1】:

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

【讨论】:

    【解决方案2】:
    #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;
    }
    

    【讨论】:

    猜你喜欢
    • 2010-12-09
    • 1970-01-01
    • 2020-07-11
    • 1970-01-01
    • 2013-09-15
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多