리눅스 fork 예제

추측할 수 있듯이 fork.c의 소스 코드가 실행된 시점과 getpid.c가 실행된 시간 사이에 운영 체제에서 약 1000개의 프로세스가 만들어졌습니다. 마지막으로 이름이 e에 의해 추가되는 경우 환경 변수를 나타내는 문자열 배열, 각 양식 “ENVVAR=value”와 null이 종료되는 배열을 포함할 수 있습니다. 예를 들어 시스템 호출 fork()는 프로세스를 만드는 데 사용됩니다. 인수를 수행하지 않고 프로세스 ID를 반환합니다. fork()의 목적은 호출자의 자식 프로세스가 되는 새 프로세스를 만드는 것입니다. 새 자식 프로세스가 만들어지면 두 프로세스 모두 fork() 시스템 호출 다음에 다음 명령을 실행합니다. 따라서 부모와 자식을 구별해야합니다. 이 작업은 fork() Fork의 반환된 값을 테스트하여 수행할 수 있으며 시스템 호출이며 정상적인 C 함수로 생각하면 안 됩니다. fork()가 발생하면 자체 주소 공간으로 두 개의 새 프로세스를 효과적으로 만듭니다. fork() 호출 전에 초기화되는 변수는 주소 공간 모두에 동일한 값을 저장합니다. 그러나 프로세스 중 하나의 주소 공간 내에서 수정된 값은 부모이고 다른 하나는 하위 프로세스의 다른 프로세스에는 영향을 받지 않습니다.

그렇다면 fork() 시스템 호출을 사용하는 예제 c 프로그램입니다. 코멘트를 알 수 있습니다. 참고: vfork는 복제의 특수 한 경우라고도 합니다. 후속 코드 블록에서 pid 값을 확인합니다. 두 프로세스 모두 코드의 전체 길이동안 실행됩니다. 그래서 우리는 어떻게 그들을 구별할 수 있을까요? 다시 포크는 시스템 호출이며 여기에 차이가 있습니다. 새로 만든 자식 프로세스 pid 안에는 0이 저장되고 상위 프로세스에서는 양수 값을 저장합니다. pid 내부의 음수 값은 포크 오류를 나타냅니다. 포크 시스템 호출은 새 프로세스를 만듭니다. fork()에서 만든 새 프로세스는 반환된 값을 제외한 현재 프로세스의 복사본입니다.

exex 시스템 호출은 현재 프로세스를 새 프로그램으로 대체합니다. Vfork() 행동은 아래 프로그램에서 자세히 설명합니다. Fork 시스템 호출은 pid(프로세스 ID) 및 ppid(상위 프로세스 ID)에서만 상위 프로세스와 다른 자식을 만듭니다. 리소스 사용률이 0으로 설정됩니다. 파일 잠금 및 보류 중인 신호는 상속되지 않습니다. (리눅스에서 “포크”는 “복사 – 온 – 쓰기()”로 구현됩니다). 다음 프로그램은 포크와 임원을 모두 사용합니다. 함수는 포크이고 자식 프로세스인 경우 인수 “”를 가진 find 명령을 시작합니다.

반환 값:- 자식 프로세스의 PID (프로세스 ID) 실행의 부모 스레드에서 반환 되 고 “0” 자식의 실행 스레드에서 반환 됩니다. 다음은 포크 시스템 호출의 작동 방식을 설명하는 c-프로그래밍 예제입니다. 참고:- 앞에서 설명했듯이 vfork 시스템 호출의 동작을 예측할 수 없는 경우가 많습니다. 위의 경우와 마찬가지로 한 번 및 두 번 전에 인쇄했지만 _exit() 함수로 호출을 중단했습니다. 그렇지 않으면 포크 시스템 호출을 사용하고 가능한 한 vfork를 사용하지 않는 것이 좋습니다. 각 포크에서 하나의 값만 수정됩니다. Fork()는 자식 프로세스를 만들어 부모용과 자식에 대해 두 번 인쇄합니다. 당신이 볼 수 있듯이 “후 포크”인쇄 문 앞에 fork() 호출이 있습니다. vfork -> 자식 프로세스를 만들고 부모 프로세스를 차단합니다. 매개 변수를 사용 하지 않고 정수 값을 반환 합니다. 다음은 fork()에서 반환되는 다른 값입니다.

예를 들어, 다음 프로그램은 간단한 포크를 수행합니다. fork()의 반환 값은 pid_t(라이브러리 헤더 파일 에 정의됨)이지만, 그 아래에는 단순히 할당되고 암시적으로 int에 캐스팅됩니다.

This entry was posted in Uncategorized. Bookmark the permalink. Both comments and trackbacks are currently closed.
  • Get a Quote
  • Request a Call Back

    Oops! We could not locate your form.

  • We deliver…

    • Fully A-Rated Inhouse
    • Special Q-Lon Sealing Gaskets
    • Heat Retaining Glass
    • Most Competitive Prices
    • 10 Day delivery
    • Expert Fitting
    • Same Day Aftercare
    • Largest Range of Colours
    • Best Technical Advice
    • No Deposit