![](/img/trans.png)
[英]On solaris how to get the full path of executable of running process programatically?
[英]how to get path to executable in C running on Windows?
-getcwd至少在使用VS 2010進行調試時不會返回它。
-i由於我使用的用戶界面工具包而無法訪問main的參數
所以有什么事嗎?
PS。 在將其標記為重復項之前,請注意限制
使用GetModuleFileName()並將NULL作為第一個參數傳遞:
DWORD last_error;
DWORD result;
DWORD path_size = 1024;
char* path = malloc(1024);
for (;;)
{
memset(path, 0, path_size);
result = GetModuleFileName(0, path, path_size - 1);
last_error = GetLastError();
if (0 == result)
{
free(path);
path = 0;
break;
}
else if (result == path_size - 1)
{
free(path);
/* May need to also check for ERROR_SUCCESS here if XP/2K */
if (ERROR_INSUFFICIENT_BUFFER != last_error)
{
path = 0;
break;
}
path_size = path_size * 2;
path = malloc(path_size);
}
else
{
break;
}
}
if (!path)
{
fprintf(stderr, "Failure: %d\n", last_error);
}
else
{
printf("path=%s\n", path);
}
傳遞NULL
作為GetModuleFileName的第一個參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.