Win32 API의 CreateProcess()함수를 이용해서 자식프로세스를 생성하는 예제를 해보고 있는데요.
CreateProcess()를 사용할 때, 명령어 라인에서 자식프로세스에 임의의 숫자 인자값(5)을 넘겨준 뒤
그 인자로 자식프로세스를 처리하려고 하는데
#include <windows.h>
#include <stdio.h>
#include <atlstr.h>
void main(){
STARTUPINFO si;
PROCESS_INFORMATION pi;
CString path = "Fibonacci 5";
//메모리 할당
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
//자식 프로세스 생성
if(!CreateProcess(NULL, (LPWSTR)(LPCTSTR)path, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)){
printf("Create Process Failed");
}
//부모 프로세스가 자식 프로세스가 끝나기를 기다림
WaitForSingleObject(pi.hProcess , INFINITE);
printf("Child complete");
//핸들 닫기
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
}
이렇게 path부분에서 실행시킬 프로세스의 경로와 인자5를 넘겨줬는데
넘겨받은 자식프로세스의 argv 배열에는 argv[0] = Fibonacci, argv[1] = 5가 저장될텐데,
이 5가 문자 5로 넘겨받아서 숫자로 처리하려면 자식프로세스 내에서 형변환을 시켜서 처리하는 방법밖에 없을까요?
처음에 인자를 넘겨줄때 숫자로 넘겨줄 수 있는 방법이 있을것 같은데,,,
구글링해봐도 잘 모르겠네요..
방법이나 힌트 좀 부탁드리겠습니다ㅜㅜ