/*
PartAdder_sin.cpp
전달된 인자 사이의 수 덧셈.
*/
#include <stdio.h>
#include <windows.h>
#include <tchar.h>
int _tmain(int argc, TCHAR* argv[])
{
if(argc!=3)
return -1;
DWORD start=_ttoi(argv[1]);
DWORD end=_ttoi(argv[2]);
DWORD total=0;
for(DWORD i=start; i<=end; i++)
total+=i;
return total;
}
일단 이거랑
/*
NonStopAdderManager.cpp
프로그램 설명.
1~10까지 덧셈하여 출력
문제점을 지니고 있는 예제
*/
#include <stdio.h>
#include <windows.h>
#include <tchar.h>
int _tmain(int argc, TCHAR* argv[])
{
STARTUPINFO si1={0,};
STARTUPINFO si2={0,};
PROCESS_INFORMATION pi1;
PROCESS_INFORMATION pi2;
DWORD return_val1;
DWORD return_val2;
TCHAR command1[]=_T("PartAdder.exe 1 5");
TCHAR command2[]=_T("PartAdder.exe 6 10");
DWORD sum=0;
si1.cb=sizeof(si1);
si2.cb=sizeof(si2);
CreateProcess(NULL,
command1,
NULL,
NULL,
TRUE,
0,
NULL,
NULL,
&si1,
&pi1
); //CreateProcess 1
CreateProcess(NULL,
command2,
NULL,
NULL,
TRUE,
0,
NULL,
NULL,
&si2,
&pi2
); //CreateProcess 2
CloseHandle(pi1.hThread);
CloseHandle(pi2.hThread);
GetExitCodeProcess(pi1.hProcess, &return_val1);
GetExitCodeProcess(pi2.hProcess, &return_val2);
if(return_val1==-1 || return_val2==-1)
return -1; //비 정상적 종료.
sum+=return_val1;
sum+=return_val2;
_tprintf(_T("total : %d \n"), sum);
CloseHandle(pi1.hProcess);
CloseHandle(pi2.hProcess);
return 0;
}
이거
non~.cpp로 실행하면 518이 결과값으로 뜬다는데 개 죶까는소리고 실제로는 -171284848이따위로뜸
당연하지 ㅡㅡ.. 물론 제대로 나올때도 있겟지만 프로세스 실행하고 대기 안하고 바로 리턴값 체크하면 제대로 나올리가
잠만여 님 뭔소린지 지구언어로 해주세요
part실행해놓고 non을키라고?
ㅡㅡ CreateProcess 안보이냐 수업 안듣는 너를 탓해라