라이브러리
[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() 함수를 사용하여 자식 프로세스의 상태를 확인하고, 자식 프로세스가 종료되면 부모 프로세스가 종료됩니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.