array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'tr', ), 'this' => array ( 0 => 'function.dio-fcntl.php', 1 => 'dio_fcntl', ), 'up' => array ( 0 => 'ref.dio.php', 1 => 'Doğrudan G/Ç İşlevleri', ), 'prev' => array ( 0 => 'function.dio-close.php', 1 => 'dio_close', ), 'next' => array ( 0 => 'function.dio-open.php', 1 => 'dio_open', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'tr', 'path' => 'reference/dio/functions/dio-fcntl.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4 >= 4.2.0, PHP 5 < 5.1.0)
dio_fcntl — Belirtilen dosya tanıtıcısı üzerinde komut çalıştırır
dio_fcntl() işlevi, dt
dosya
tanıtıcısı üzerinde komut
ile belirtilen işlemi
yapar. Bazı komutların gerektirdiği ek bağımsız değişkenler
bağımsız_değişkenler
bağımsız değişkeninde belirtilebilir.
dt
dio_open() işlevinden dönmüş bir dosya tanıtıcısı.
komut
Aşağıdaki işlemlerden biri belirtilebilir:
F_SETLK
- Dosya kilidi tanımlar veya siler.
Kilit başka bir süreç tarafından tutulmuşsa işlev -1 ile döner.
F_SETLKW
- F_SETLK
gibidir,
farklı olarak, kilit başka bir süreç tarafından tutulmuşsa kilit
serbest kalıncaya kadar bekler.
F_GETLK
- Birileri kilidin tutulmasını
engelliyorsa dio_fcntl() işlevi (aşağıda
açıklandığı gibi) bir ilişkisel dizi ile döner. Hiçbir engelleme
anahtarı yoksa "tür" olarak F_UNLCK
atanır.
F_DUPFD
- bağımsız_değişkenler
değerine eşit veya büyük dosya tanıtıcılarından en küçük
numaralısını bulur ve bunu döndürür.
F_SETFL
- Dosya tanıtıcılarının seçeneklerini
bağımsız_değişkenler
ile belirtilen değere ayarlar;
bunlar, O_APPEND
,
O_NONBLOCK
veya O_ASYNC
olabilir. O_ASYNC
kullanmak için PCNTL eklentisini kullanmanız gerekir.
bağımsız_değişkenler
bağımsız_değişkenler
bir ilişkisel dizi olup,
komut
olarak F_SETLK
veya
F_SETLLW
belirtildiğinde aşağıdaki anahtarlar belirtilebilir:
C çağrısının sonucu ile döner.
Örnek 1 - Bir kilidin atanması ve silinmesi
<?php
$fd = dio_open('/dev/ttyS0', O_RDWR);
if (dio_fcntl($fd, F_SETLK, Array("type"=>F_WRLCK)) == -1) {
// dosya tanıtıcısı kilitli görünüyor
echo "Kilit kaldırılamadı. Başka bir süreç tarafından tutuluyor.";
} else {
echo "Kilit başarıyla atandı/silindi";
}
dio_close($fd);
?>
Bilginize: Bu işlev Windows sistemlerinde çalışmaz.