2012-06-07 2 views
1

난수 생성기 프로그램을 만들었습니다. 최대 인수와 최소 수의 두 인수를 취해서 양 끝을 포함하여 그 범위 내의 임의의 정수를 출력합니다.다른 프로그램 호출 및 인수 전달

임의의 정수가 필요한 시뮬레이션 프로그램을 만들고 임의 화 프로그램을 호출하고 시뮬레이션 프로그램에 필요한 최대 값과 최소값을 전달한 다음 시뮬레이션에 임의의 숫자를 반환 할 수 있기를 원합니다. .

난 그냥 몰라요 및 randomizer 최대 가져다 및 최대 및 최소 값을 전달하는 시뮬레이션에서 작성해야 할 코드를 찾을 수 없습니다.

감사합니다.

+2

이것은 함수 나 클래스 (상황에 따라 다름)가 전체 프로그램이 아닌 다른 사람 안에서 호출하는 것입니다. – chris

+0

메소드 서명을 최소한으로 작성할 수 있습니까? – nikhil

+0

[fork] (http://manpages.ubuntu.com/manpages/lucid/man2/fork.2.html)를 사용하여 * nix에 하위 프로세스를 생성 할 수 있습니다. – AJG85

답변

1

특정 질문에 대해서는 popen()을 고려해야합니다. 귀하의 결과가 끝나면 pclose()으로 전화하십시오.

FILE *input = popen("program -and args", "r"); 
if (input) { 
    // read the input 
    pclose(input); 
} else { 
    perror("popen"); 
    // handle error 
} 

프로그램이 표준 입력 인수를 읽고, 다음의 표준 출력에 결과를 출력하는 경우, 당신은 popen의 양방향 버전을 만들어야합니다. POSIX 호환 OS가 있다고 가정하면 socketpair을 사용하여 양방향 채널을 만들 수 있습니다 (또는 pipe을 두 번 호출 할 수 있음). 그런 다음 fork을 사용하고 exec 변형 중 하나를 사용하여 기능을 구현합니다. 이에 대해서는 here에 설명되어 있습니다.

하지만 다른 사람들이 제안한 것처럼 난수 생성기의 기능을 프로그램에 함수로 통합해야합니다.

1

가장 좋은 방법은 랜덤 생성기에서 라이브러리를 만들어 링크하는 것입니다. 그렇지 않은 경우 execv() function을 조회 할 수 있습니다.