windows
char moduleFileName[MAX_PATH];
GetModuleFileNameA(0, moduleFileName, MAX_PATH);
linux
char current_absolute_path[MAX_SIZE];
int cnt = readlink("/proc/self/exe", current_absolute_path, MAX_SIZE);
if (cnt < 0 || cnt >= MAX_SIZE)
{
printf("***Error***\n");
exit(-1);
}