我想写一个C程序打印它的位置。
例如,如果我将程序exe文件放在D:myfoldermyc_prog
,它应该打印相同的位置D:myfoldermyc_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("%sn", buff);
}
return 0;
}