게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
C언어 프로세스 생성할 때 숫자 인자값은 못넘겨주나요?
게시물ID : programmer_2305짧은주소 복사하기
작성자 : 수상한그녀
추천 : 0
조회수 : 935회
댓글수 : 2개
등록시간 : 2014/04/02 00:39:49
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로 넘겨받아서 숫자로 처리하려면 자식프로세스 내에서 형변환을 시켜서 처리하는 방법밖에 없을까요?
처음에 인자를 넘겨줄때 숫자로 넘겨줄 수 있는 방법이 있을것 같은데,,,
구글링해봐도 잘 모르겠네요..
방법이나 힌트 좀 부탁드리겠습니다ㅜㅜ
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호