dio_fcntl

(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)

dio_fcntl β€” Π’Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ C fcntl для Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ дСскриптора

ОписаниС

function dio_fcntl(resource $fd, int $cmd, mixed $args = ?): mixed

Ѐункция dio_fcntl() Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π² cmd ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ для fd. Если ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ‚ΠΎ ΠΎΠ½ΠΈ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ Π² args.

Бписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

fd

Π€Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ дСскриптор, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΈΠ· dio_open().

cmd

ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ:

  • F_SETLK - Установка ΠΈΠ»ΠΈ сброс Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ. Если Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΊΠ΅ΠΌ-Π»ΠΈΠ±ΠΎ удСрТиваСтся, dio_fcntl() Π²Π΅Ρ€Π½Ρ‘Ρ‚ -1.

  • F_SETLKW - ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° F_SETLK, Π½ΠΎ Ссли Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΊΠ΅ΠΌ-Π»ΠΈΠ±ΠΎ удСрТиваСтся, dio_fcntl() Π±ΡƒΠ΄Π΅Ρ‚ ΠΆΠ΄Π°Ρ‚ΡŒ Π΅Ρ‘ освобоТдСния.

  • F_GETLK - dio_fcntl() Π²Π΅Ρ€Π½Ρ‘Ρ‚ ассоциативный массив (ΠΊΠ°ΠΊ описано Π½ΠΈΠΆΠ΅) Ссли ΠΊΡ‚ΠΎ-Π»ΠΈΠ±ΠΎ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ. Если Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚, Ρ‚ΠΎ ΠΊΠ»ΡŽΡ‡ "type" Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ F_UNLCK.

  • F_DUPFD - ΠΈΡ‰Π΅Ρ‚ наимСньший доступный Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ дСскриптор, больший ΠΈΠ»ΠΈ Ρ€Π°Π²Π½Ρ‹ΠΉ args ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Π³ΠΎ.

  • F_SETFL - устанавливаСт Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΌΡƒ дСскриптору Ρ„Π»Π°Π³ΠΈ, Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ Π² args, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ O_APPEND, O_NONBLOCK ΠΈΠ»ΠΈ O_ASYNC. Для использования O_ASYNC Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ PCNTL.

args

args - это ассоциативный массив, Ссли cmd установлСн Π² F_SETLK ΠΈΠ»ΠΈ F_SETLKW, со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ:

  • start - смСщСниС Π½Π° Π½Π°Ρ‡Π°Π»ΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ

  • length - Ρ€Π°Π·ΠΌΠ΅Ρ€ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π·ΠΎΠ½Ρ‹. 0 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π°

  • whence - зависит ΠΎΡ‚ l_start: ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ SEEK_SET, SEEK_END ΠΈ SEEK_CUR

  • type - Ρ‚ΠΈΠΏ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ: ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ F_RDLCK (Ρ‡Ρ‚Π΅Π½ΠΈΠ΅), F_WRLCK (запись) ΠΈΠ»ΠΈ F_UNLCK (Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π½Π΅Ρ‚)

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹Π·ΠΎΠ²Π° C-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #1 Установка ΠΈ снятиС Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ

<?php

$fd
= dio_open('/dev/ttyS0', O_RDWR);

if (
dio_fcntl($fd, F_SETLK, Array("type"=>F_WRLCK)) == -1) {
// дСскриптор Ρ„Π°ΠΉΠ»Π° Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½
echo "НСльзя ΡΠ½ΡΡ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ, ΠΎΠ½Π° удСрТиваСтся Π΄Ρ€ΡƒΠ³ΠΈΠΌ процСссом.";
} else {
echo
"Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установлСна/снята";
}

dio_close($fd);
?>

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Для Windows-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ.

οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π΅Ρ‰Ρ‘ Π½Π΅ добавляли примСчания для страницы