我想写一个打印其位置的C程序。
例如,如果我将程序exe文件放到D:\myfolder\myc_prog
,它应该打印相同的位置D:\myfolder\myc_prog
,如果我将该exe文件放到位置E:\mynewfold\
,它应该打印更新位置E:\mynewfold
。
实际上,我不知道如何做到这一点,这就是为什么我无法提供这个问题的详细信息。
答案 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;
}