Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[2853] Re:Re:[질문]system()함수 사용시 애로사항입니다. 도와주세요.
오전&오후 [kkhhyy11] 3923 읽음    2003-07-18 21:58
system()함수는 child process를 실행하지만 실행시킨 child process가
끝날때까지 기다리는게 아니고 바로 본메인으로 돌아와서 메인의 나머지
를 실행시킵니다. exec계열은 child를 실행시키고 main을 종료합니다.
spawn계열의 함수는 child를 실행시키고 실행시킨 child가 종료할때까지 기다렸다가
child가 종료되었을때 비로서 main으로 돌아와서 나머지를 실행시킵니다.

간단한 예제를 든다면요

#include <process.h>
#include <stdio.h>

int main(void)
{
    int result;

    result = spawnlp(P_WAIT, "notepad", " test.txt", NULL);
    //test.txt앞에 공백이 들어가 있습니다 즉 notepad test.txt이기 때문에..ㅎㅎ;
    if(result == -1){
       printf("error\n");
       return 1;
    }
   
    return 0;
}
이렇게 하시면 노트패드로 test.txt파일을 열고 이 노트패드를 종료할때
까지는 main은 중지합니다.

spawnlp(int mode, char *path, char *argu0, char *argu1, ,,, , NULL);

mode에서 P_WAIT 가 child프로그램이 끝날때까지 기다리는것입니다.
char *path; 실행시킬 프로그램입니다.
char *argu0, *argu1, ,, ; 인자리스트입니다.
되도록이면 실행시킬 프로그램을 같은 디렉토리에 넣고 하세요..

박진만 님이 쓰신 글 :
: 답변에 정말 감사드립니다.
:
: *******답변 내용*********
: 오전&오후 spawn()함수를 사용해 보세요.. 07/17 16:13 X
: 오전&오후 이함수에는 인자로 실행시킨 프로그램이 끝날때까지 메인프로그램을 중지시킬수 있습니다. 07/17 16:14 X
:
:
: 그런데요 exec나 spawn를 써보려고 하는데 정확한 사용법을 모르겠습니다.
:
: 그래서인지 인수값도 안맞는것 같아서 실행이 안되는것 같아요..
:
: 만약 외부명령인 sqlplus 를 실행시켜 ID/PASS는 dbms/kkk 이고 test.sql을 구동시키려고하면..물론 아래의 질문처럼 백그라운드로 돌려서 그 프로세서가 끝날때까지 main 프로그램을 종료시키지 않으수 있는 방법이 있을까요??
:
: system("sqlplus dbms/kkkk @test.sql &");
:
: 이렇게 했더니 main이 바로 끝나버리는데 그럼 exec나 spawn을 써서 어떻게 종료될때까지 기다리는 걸까요...기왕이면 예제를 보여주시면 더욱 고맙겠습니다.
:
: 말도 안되는 질문만 해서 죄송합니다.
: 고수님들의 조언 부탁드립니다.
:
:
:
:  박진만 님이 쓰신 글 :
: : 안녕하세요. 질문이 있어서요.
: : system 함수를 이용해서 외부 명령을 실행하려고 하는데
: : 예를 들어
: :
: : main(){
: : system("sqlplus dbms/kkkk @test.sql");
: : }
: :
: : 하면 당연히 sql 작업 test.sql를 돌리고 나서 위의 프로그램이 종료가 되는데
: :
: : main(){
: : system("sqlplus dbms/kkkk @test.sql &");
: : }
: :
: : 이렇게 백그라운드로 돌리면 sql문이 끝나지도 않았는데 그 다음줄로 넘어가서 프로그램이
: : 종료가 됩니다.
: :
: : 혹시 위의 경우처럼 백그라운드로 돌려도 sql문이 실행될때까지 기다렸다가 sql문이 끝나고 나서
: : 프로그램이 종료되도록 하는 방법은 없나요?????
: :
: : 고수님들의 조언 부탁드립니다.

+ -

관련 글 리스트
2848 [질문]system()함수 사용시 애로사항입니다. 도와주세요. 박진만 1301 2003/07/16
4168     Re:[질문]system()함수 사용시 애로사항입니다. 도와주세요. 오전&오후 1519 2003/07/17
4167     Re:[질문]system()함수 사용시 애로사항입니다. 도와주세요. 오전&오후 1425 2003/07/17
2852     Re:[질문]system()함수 사용시 애로사항입니다. 도와주세요. 박진만 1840 2003/07/18
2853         Re:Re:[질문]system()함수 사용시 애로사항입니다. 도와주세요. 오전&오후 3923 2003/07/18
2855             Re:Re:Re:오전&오후님,,,도움에 감사를 드립니다. 그런데요???? 박진만 1462 2003/07/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.