라이브러리

[PHP] EvChild::set - 워처를 구성합니다




EvChild::set() 함수

EvChild::set() 함수는 Event PHP (EvPHP) 라이브러리의 EvChild 클래스에 속하는 함수입니다. 이 함수는 EvChild 객체의 속성을 설정하는 데 사용됩니다. EvChild 객체는 프로세스에서 자식 프로세스를 생성하고 관리하는 데 사용됩니다.

EvChild::set() 함수의 매개 변수

EvChild::set() 함수는 다음과 같은 매개 변수를 받습니다.

* `$what`: EvChild 객체의 속성을 설정할 때 사용하는 플래그입니다. 다음 플래그 중 하나를 지정할 수 있습니다.
* `EV_CHILD_READ`: 자식 프로세스의 표준 입력을 읽을 수 있도록 설정합니다.
* `EV_CHILD_WRITE`: 자식 프로세스의 표준 출력을 쓸 수 있도록 설정합니다.
* `EV_CHILD_PEEK`: 자식 프로세스의 표준 입력을 읽을 수 있도록 설정합니다. 그러나 읽은 데이터는 버립니다.
* `EV_CHILD_STATUS`: 자식 프로세스의 상태를 확인할 수 있도록 설정합니다.
* `$fd`: 자식 프로세스의 표준 입력, 출력, 또는 상태를 확인할 때 사용하는 파일 디스크립터입니다.
* `$callback`: 자식 프로세스의 상태가 변경되었을 때 호출할 콜백 함수입니다.
* `$data`: 콜백 함수에 전달할 데이터입니다.

EvChild::set() 함수의 예제

다음 예제는 EvChild::set() 함수를 사용하여 자식 프로세스를 생성하고 관리하는 방법을 보여줍니다.

#hostingforum.kr
php

<?php



// EvChild 객체 생성

$child = new EvChild();



// 자식 프로세스 생성

$pid = pcntl_fork();



if ($pid == -1) {

    // fork 실패

    die("fork failed");

} elseif ($pid) {

    // 부모 프로세스

    // 자식 프로세스의 상태를 확인할 때 사용하는 파일 디스크립터

    $fd = pcntl_open($pid, 'r');

    // EvChild::set() 함수 호출

    $child->set(EV_CHILD_READ, $fd, 'child_status', array($child));

    // EvLoop 객체 생성

    $loop = new EvLoop();

    // EvLoop::run() 함수 호출

    $loop->run();

} else {

    // 자식 프로세스

    // 자식 프로세스에서 작업을 수행합니다.

    sleep(5);

    exit(0);

}



// EvChild::set() 함수를 사용하여 자식 프로세스의 상태를 확인합니다.

function child_status(EvChild $child, $what, $res, $data) {

    // 자식 프로세스의 상태가 변경되었을 때 호출됩니다.

    if ($what & EV_CHILD_STATUS) {

        // 자식 프로세스의 상태를 확인합니다.

        $status = pcntl_waitpid($data['pid'], $status, WNOHANG);

        if ($status > 0) {

            // 자식 프로세스가 종료되었습니다.

            echo "자식 프로세스가 종료되었습니다.
";

        } else {

            // 자식 프로세스의 상태를 다시 확인합니다.

            $child->set(EV_CHILD_STATUS, $data['pid'], 'child_status', array($child));

        }

    }

}



?>



이 예제에서는 EvChild::set() 함수를 사용하여 자식 프로세스의 상태를 확인하고, 자식 프로세스가 종료되면 부모 프로세스가 종료됩니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 584 페이지

검색

게시물 검색