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

C/C++ Q/A
[2855] Re:Re:Re:오전&오후님,,,도움에 감사를 드립니다. 그런데요????
박진만 [] 1461 읽음    2003-07-19 09:09
도움에 감사를 진심으로 드립니다.
해보니까 spawn은 MS-DOS에서만 되는것 같은데 spawn기능을
UNIX에서 할 수 있는 방법이 없을까요??
뭐 fork()나 exec()등을 섞어서 spawn을 구현할 수는 없나요?

그리고 인수를 항상 한칸을 띄워야 하나봐요!!
감사하구요...바쁘신데 혹시 아시면 몇자를 더 가르켜주세요..

좋은 하루 되시고요....

오전&오후 님이 쓰신 글 :
: 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:오전&오후님,,,도움에 감사를 드립니다. 그런데요???? 박진만 1461 2003/07/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.