Contents

Develop
2003.04.23 10:44

[c] fork() 시스템 콜 사용 방법.

조회 수 27637 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Unix 에서 임의의 프로세스는 fork()를 이용해서
자신과 똑같은 기능을 수행하는 프로세스를 하나 복제 할 수 있다.

- fork()를 호출한 프로세스 : 부모프로세스
- 새로 생긴 프로세스 : 자식프로세스
자식 프로세스는 부모프로세스의 코드, 스택, 파일기술자, 소켓번호 등을 공유
단, 새로 생간 자식 프로세스의 id번호(PID)는
부모 프로세스의 PID와 구별되며 각종 변수들은 공유하지 않는다..

fork() 시스템 콜이 성공적으로 수행 됐을때..
- 하나의 프로세스가 두개의 프로세스로 된다.
(두 프로세스의 fork() 리턴문이 서로 다르다는 것을 이용하여 두 프로세스는 수행할 일을 구분한다.)
- 부모프로세스에게는 fork()의 리턴값으로 새로 만들어진 자식 PID가 리턴
- 자식 프로세스는 fork()의 리턴값이 0이 된다.
fork()이 실패한 경우는 -1이 리턴되고 자식 프로세스는 생성되지 않는다.

----------------------------------------------

  부모 프로세스(PID=135)  <┐
            |                         │ fork() 리턴값 136
         fork() ───────┘
           │
  자식 프로세스(PID=136) -> fork()리턴값 0

----------------------------------------------

int pid;
pid = fork();

if(pid==0){
    child_work(); // 자식 프로세스용 코드
}else{
    parent_work(); // 부로 프로세스용 코드
}


?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
1077 Develop [c] RSA 암호화 구현(gmp 라이브러리 활용) file hooni 2016.10.03 1001
1076 PPT 삼성페이(Samsung Pay) 구조 file hooni 2016.09.09 1010
1075 Develop XE Core 1.8.18 본문 작성시 태그(html) 사라지는 버그 file hooni 2016.04.21 1012
1074 Develop [js] AngularJS 란? file hooni 2015.11.26 1015
1073 System/OS [mac] How to uninstall MySQL on Mac OS. hooni 2017.11.08 1027
1072 System/OS [virtualbox] VirtualBox에 Ubuntu 설치하기 file hooni 2019.11.22 1052
1071 Develop [ios] 로컬에 있는 JS 파일 웹뷰에서 동적으로 실행하기 hooni 2015.02.10 1064
1070 Develop [ios] 오브젝티브C→스위프트, 코드 변환 손쉽게 file hooni 2015.08.07 1066
1069 Develop [ios] Xcode에서 특정 파일만 ARC 따로 설정하는 방법 file hooni 2017.03.29 1069
1068 Develop [android] 딜레이를 구현하기 위한 꼼수 hooni 2016.11.24 1071
1067 Develop [ios] APNS, Remote Push 수신 시점에서 앱의 3가지 실행 상태 hooni 2018.10.19 1078
1066 Develop [js] 스크롤 이벤트 막기 hooni 2015.04.14 1080
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 11 12 13 ... 98 Next
/ 98