Linux의 "fork()"는 새 프로세스를 생성하는 데 사용되는 시스템 호출 함수로, 하위 프로세스라고 하는 현재 프로세스의 복사본을 생성합니다. 하위 프로세스는 코드를 포함하여 상위 프로세스와 거의 동일합니다. 데이터 및 개방형 파일 설명자 등은 "pid_t fork(void);"라는 프로토타입을 갖습니다.
Linux에서 fork()는 새로운 프로세스를 생성하는 데 사용되는 시스템 호출 함수입니다. 이 함수는 하위 프로세스라고 하는 현재 프로세스의 복사본을 만듭니다. 하위 프로세스는 코드, 데이터, 열린 파일 설명자 등을 포함하여 상위 프로세스와 거의 동일합니다.
fork() 함수의 프로토타입은 다음과 같습니다.
#include <sys/types.h> #include <unistd.h> pid_t fork(void);
그 중 pid_t는 프로세스 ID(PID)를 나타내는 데 사용되는 정수형입니다. fork() 함수에는 매개변수가 없습니다.
fork() 함수가 호출된 후 두 개의 반환 값이 있습니다.
따라서 현재 코드가 상위 프로세스에서 실행되는지, 하위 프로세스에서 실행되는지는 fork()의 반환값을 판단하여 판단할 수 있습니다.
다음은 fork() 함수의 기본 사용법을 보여주는 간단한 샘플 코드입니다.
#include <stdio.h> #include <unistd.h> int main() { pid_t pid = fork(); if (pid < 0) { fprintf(stderr, "Fork failed. "); return 1; } else if (pid == 0) { printf("This is the child process. PID: %d ", getpid()); } else { printf("This is the parent process. Child PID: %d ", pid); } return 0; }
위 코드에서는 fork() 함수를 호출하여 상위 프로세스인지 하위 프로세스 기반인지 확인합니다. 반환 값에. 상위 프로세스에서는 하위 프로세스의 PID를 인쇄하고, 하위 프로세스에서는 자체 PID를 인쇄합니다.
fork() 함수는 힙, 스택 및 전역 변수를 포함하여 상위 프로세스의 메모리를 하위 프로세스에 완전히 복사한다는 점에 유의해야 합니다. 따라서 fork() 이후에는 상위 프로세스와 하위 프로세스가 서로 간섭하지 않고 별도로 자신의 코드를 실행하게 됩니다.
위 내용은 Linux의 포크 기능은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!