리눅스 환경 C프로그래밍 fork()와 exec()함수에 대한 질문좀할게요
유미
질문 제목 : fork() 와 exce()에 대한 질문입니다.fork()와 exec()에 대한 질문질문 내용 :
리눅스환경에서 쉘프로그래밍을 구현하는 과제를 하는 중에 이해가 안가는 부분이 생겼습니다.
bool run( char* line )
{
pid_t=child;
child = fork();
if( child == 0 )
{
execvp( tokens[0], tokens );
printf( no such file\n );
_exit( 0 );
}
else if( child 0 )
{
printf( failed to fork()! );
_exit( 0 );
}
else
wait( &status );return true;}올린 부분은 run()함수의 일부분입니다.일단 제가 이해가 안되는 부분은 fork() 함수 호출 이후 부분인데요fork()함수를 호출하면 자식 프로세스가 생기잖아요?그럼 이제 부모프로세스와 자식프로세스 2개의 프로세스가 각각if(child==0) 요부분은 자식프로세스가 실행하는 코드부분이고else 요부분이 부모프로세스에서 실행되는 부분이므로 부모프로세스가 자식프로세스를 기다리잖아요?근데 저 자식 프로세스에서실행하는 코드부인execvp()가 현재 실행되고 있는 프로세스 를 덮어버리고 안에 매개변수로 받은값의 명령어를 실행하는 부분이라는 것은 알고있습니다. 그런데제가 임의로윗부분에printf(e); 라는아무런 값이나 출력하는 코드를 넣어봤는데 프로그램 구동중에 안보이더라구요 만약에 새로운 프로세스로 덮어 씌워버려도 printf(e);라는 명령이execvp()보다 위에있으니 먼저 실행되서 화면에 보여져야 된다고 생각했는데 그게 아니더라구요그래서 제 생각에는if(child==0)부분, 즉 자식프로세스가 실행하고 있는 부분은 화면에 안나온다고 생각했는데저 execvp() 함수를 지우고 프로그램을 구동하니printf(e);와printf( no such file\n ); 요두개의 명령이 모두 프로그램구동중에 화면에 출력되더라구요.. 제가 이해하기로는 자식프로세스가 실행하고 있는 부분은 화면에 안나온다고 생각했는데execvp()를 지우고 나니깐 저 자식프로세스 부분이 출력되서 의아해서 질문드립니다.제가 개념을 잘못이해하고있는건지 너무 헷갈리네요 ㅠ 설명 좀 부탁드립니다.
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2690344 | 일본어 주석 깨짐 문제 (3) | 연하얀 | 2025-04-04 |
2690314 | 암호문 만들기 -비제네르- | 이퓨리한나 | 2025-04-03 |
2690292 | 왕초보자의 질문!!!!!! 도와주세요 (1) | 하랑 | 2025-04-03 |
2690269 | 정올 문제 인데.. 흠 | 반월 | 2025-04-03 |
2690237 | sizeof에서 short형을 썻는데 왜 4byte가 나올까요? (1) | 바나나 | 2025-04-03 |
2690183 | 문자열과 포인트 비교 (2) | 미즈 | 2025-04-02 |
2690154 | a -48 ? | 희미한눈물 | 2025-04-02 |
2690094 | 테트리스 질문요. | 지후 | 2025-04-01 |
2690066 | 문자열비교!! (1) | 매디 | 2025-04-01 |
2689888 | 좀도와주세요;; ㅠㅠ | 사람 | 2025-03-30 |
2689856 | 메뉴 그리는 거 질문 | 나라빛 | 2025-03-30 |
2689831 | c언어 프로그램 추천 | 하연 | 2025-03-30 |
2689801 | c언어 time.h에서 작동이 중지되었습니다. | 하람 | 2025-03-30 |
2689772 | 2차원 배열의 배열명에 대해서.. | 옆집꼬마야 | 2025-03-29 |
2689740 | 게임 TCP소켓 질문 (2) | 불꾼 | 2025-03-29 |
2689711 | 반복문 모래시계 | 한뎃집 | 2025-03-29 |
2689685 | 경우의 수에 따른 결과 처리 질문드립니다. (2) | 다흰 | 2025-03-29 |
2689655 | .exe에 아이콘 넣는 법좀 알려주세요 | 연하얀 | 2025-03-28 |
2689631 | #define 전처리문에 대해서 (2) | 사랑은아픔 | 2025-03-28 |
2689580 | 다시 물어볼게요,,, 고수님들 | 가욋길 | 2025-03-28 |