작업을 하던 중, 현재 실행중인 프로세스의 실행파일명을 구할 필요가 있어서...

간단하게 한번 구현해봤습니다.

윈도우 API 중에 GetModuleFileName() 이라는 함수가 있는데,

이 함수를 사용하면 현재 실행중인 프로세스의 전체경로와 전체경로의 길이를 알 수 있죠~

제가 작성한 코드는 GetModuleFileName() 에서 구한 전체경로에서...

뒷부분의 실행파일부분만 잘라오는 방식입니다.

그다지 복잡하지 않은 코드이기에 설명은 생략~~ㅋㅋ (귀차니즘~ -0-;;;)


#include <windows.h>

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
   char *szFileName, szBuffer[MAX_PATH];
   int nPathLength = 0, nFileNameLength = 0;
   char *FirstIdx, *SecIdx;

   nPathLength = GetModuleFileName(NULL, szBuffer, MAX_PATH);
   FirstIdx = strrchr(szBuffer, '\\');
   SecIdx = strrchr(szBuffer, '\0');
   nFileNameLength = SecIdx - FirstIdx;

   szFileName = (char*)malloc(sizeof(nFileNameLength));
   memset(szFileName, 0, sizeof(nFileNameLength));
   
   memcpy(szFileName, FirstIdx + 1, nFileNameLength);
   
   printf("FULLPATH : %s\n", szBuffer);
   printf("FILENAME : %s\n", szFileName);

   free(szFileName);
   
   return 0;
}