>> Delete Reply from No. 0 article
No. RE: RE: [프로그래밍] 왜 이리 막히는게
많은지..도와주세요

등록 2002-05-16 15:43:00 By localhost     조회 2
이름 ^^    

		관선님 감사합니다.. 저번에 메모리 할당 맞더라구요^^;
감답도 못드렸네요..
 이번문제인데..^^
man system에 보면 system을 시그널까지받게 만든 execve의
예제가 있어요 그거 보구 했는데..
님 말씀처럼 하니까 ^^ 안되더군요..
아..그리고 system으로 대충 해결했습니다.
이상한게 c에서는 안되던데 확장자를 cpp로 바꾸고 하니까 -_-
되버리고..(아니가? 내가 소스 조금 손봐서그러나?)
여하튼.. 그렇습디다..^^
 다시한번 감사드려요^^ 좋은하루되세요.
 : 안녕하세요..
: 조기.. 밑에 답변달았던 넘인데요..
: execve에서 /bin/sh 말구여
: 딴걸로 테스트 해보심이..
: sh를 다시 호출하면 부모 프로세스가 사라지지 않나 생각됩니다.
: 그래서 밑에 있는 프린트문이 안찍히는것 같네요..
: 그리고, argvr[2]에서요, /bin/ls -a를 실행시키시려고 한것 같은데
: 이게 execve의 첫번째 아규먼트로 와야 하지 않나요?
: 에궁.. 잘 몰르것심다..
:
: : 우선 밑에 답변 달아주신분 감사합니다.
: : 너무 바빠서 감사답변도 못달겠네요. 너그러이 생각해주세요.
: :
: : 다시 묻게 됐습니다. ㅡㅜ
: : 시스템 콜함수 때문인데요..
: : system을 쓰다가 안되서 execve을 씁니다.
: : system을 쓰니까 어느부분에는 system을 인식하고
: : 어떤부분에서는 system을 아예 무시하고 다음줄 소스부터
: : 실행하더군요. 무슨 조화인지..
: :
: : 일단 소스 보여드릴께요
: :
: : main()
: : {
: :
: : 	char co1<>="/bin/ls";
: : 	char co2<>=" -al";
: : 	char st2[100]={0};
: :
: :
: : 	char *argvr[4];
: : 	argvr[0]="bash";
: : 	argvr[1]="-c";
: : 	argvr[3]=0;
: :
: : 	strcat(st2,co1);
: : 	strcat(st2,co2);
: : 	argvr[2]=st2;
: : 	execve("/bin/sh",argvr,(char *)0);
: : 	printf("complete message!!! i want see.pleas");
: :
: : }
: : 문제가 어떤거냐면 이놈을 실행시키면 execve까지 실행하고
: : 그다음 printf절을 무시해버립니다. 혹시나해서 다르게 소스도
: : 고쳐봤지만 execve실행하고 그다음 종료하고 빠져나가버리는것같더군요.
: : 왜 이런거죠?
: : execve저거 man페이지 뒤지면서 쓴건데 ㅡㅜ.. 틀렸나요?
: :
: : 시스템 콜함수에 대한 지식도 없는대다가 프로젝트는 해야겠고..
: : 기한은 임박해오고 자꾸 질문드리는게 죄송스럽지만..
: : 이렇게 밖에 해결할수가 없군요..
: :
: : --
: :
: : 좋은 하루되세요.
:
: --
: 빡/센/여/름/을/보/내/장--좋은 하루되세요.
[관리자] 패스워드를 입력 하십시오. 답장이 존재하면 함께 삭제됩니다.[ 목록 | 이전 ]
패스워드:    

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved