dio_fcntl
(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)
dio_fcntl — fd에서 c 라이브러리 fcntl을 수행합니다.
설명
dio_fcntl(resource $fd
, int $cmd
, mixed $args
= ?): mixed
dio_fcntl() 함수는 파일 설명자 fd
에 대해 cmd
에 의해 지정된 작업을 수행합니다. 일부 명령에는 추가 인수 args
가 제공되어야 합니다.
매개변수
fd
- dio_open()에 의해 반환된 파일 설명자.
cmd
- 다음 작업 중 하나일 수 있습니다.
-
F_SETLK
- 잠금이 설정되거나 해제됩니다. 다른 사람이 잠금을 보유하고 있는 경우 dio_fcntl()은 -1을 반환합니다. -
F_SETLKW
-F_SETLK
와 비슷하지만 다른 사람이 잠금을 보유하고 있는 경우 dio_fcntl()은 잠금이 해제될 때까지 기다립니다. -
F_GETLK
- dio_fcntl()은 다른 사람이 잠금을 방지하는 경우 연관 배열(아래 설명 참조)을 반환합니다. 방해 키가 없으면 "유형"이F_UNLCK
로 설정됩니다. -
F_DUPFD
-args
보다 크거나 같은 가장 낮은 번호의 사용 가능한 파일 디스크립터를 찾아 반환합니다. -
F_SETFL
- 파일 설명자 플래그를args
로 지정된 값으로 설정합니다. 이는O_APPEND
,O_NONBLOCK
또는O_ASYNC
일 수 있습니다.O_ASYNC
를 사용하려면 PCNTL 확장을 사용해야 합니다.
-
args
args
는cmd
가F_SETLK
또는F_SETLLW
일 때 다음 키가 있는 연관 배열입니다.-
start
- 잠금이 시작되는 오프셋 -
length
- 잠긴 영역의 크기. 0은 파일의 끝을 의미합니다 -
whence
- 여기서 l_start는 다음을 기준으로 합니다.SEEK_SET
,SEEK_END
및SEEK_CUR
일 수 있습니다. -
type
- 잠금 유형:F_RDLCK
(읽기 잠금),F_WRLCK
(쓰기 잠금) 또는F_UNLCK
(잠금 해제)일 수 있습니다.
-
반환 값
C 호출의 결과를 반환합니다.
Examples
예제 #1 잠금 설정 및 해제
<?php
$fd = dio_open('/dev/ttyS0', O_RDWR);
if (dio_fcntl($fd, F_SETLK, Array("type"=>F_WRLCK)) == -1) {
// the file descriptor appears locked
echo "The lock can not be cleared. It is held by someone else.";
} else {
echo "Lock successfully set/cleared";
}
dio_close($fd);
?>
메모
참고: 이 함수는 Windows 플랫폼에서 구현되지 않습니다.