我想编写一个打印其位置的 C 程序。
例如,如果我将程序 exe 文件放入D:\myfolder\myc_prog
,它应该打印相同的位置D:\myfolder\myc_prog
,如果我将该 exe 文件放入该位置E:\mynewfold\
,它应该打印更新的位置E:\mynewfold
。
实际上,我不知道该怎么做,这就是为什么我无法为这个问题提供太多细节。
由于您使用的是 Windows,因此GetModuleFileName应该可以解决问题。只需传递参数NULL
。hModule
如果您想处理长文件名(通常会这样做),请务必仔细阅读文档。您还必须去除可执行文件的名称以获取目录路径。一个快速而肮脏的方法是删除最后一个\
.
#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;
}