dio_fcntl
(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5)
dio_fcntl — Belirtilen dosya tanıtıcısı üzerinde komut çalıştırır
Açıklama
dio_fcntl() işlevi, dt dosya
tanıtıcısı üzerinde komut ile belirtilen işlemi
yapar. Bazı komutların gerektirdiği ek değiştirgeler
değiştirgeler değiştirgesinde belirtilebilir.
Değiştirgeler
-
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_SETLKgibidir, 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 (yukarıda açıklandığı gibi) bir ilişkisel dizi ile döner. Hiçbir engelleme anahtarı yoksa "tür" olarakF_UNLCKatanır. -
F_DUPFD-değiştirgelerdeğ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çeneklerinideğiştirgelerile belirtilen değere ayarlar; bunlar,O_APPEND,O_NONBLOCKveyaO_ASYNColabilir.O_ASYNCkullanmak için PCNTL eklentisini kullanmanız gerekir.
-
-
değiştirgeler -
değiştirgelerbir ilişkisel dizi olup,komutolarakF_SETLKveyaF_SETLLWbelirtildiğinde aşağıdaki anahtarlar belirtilebilir:-
"start" - kilidin başlangıç konumu
-
"length" - kilitli alanın boyu; sıfır, dosyanın sonuna kadar demektir.
-
"wenth" - l_start'ın göreli olduğu yer:
SEEK_SET,SEEK_ENDveSEEK_CURolabilir. -
"type" - kilit türü:
F_RDLCK(okuma kilidi),F_WRLCK(yazma kilidi) veyaF_UNLCK(kilidi aç) olabilir.
-
Dönen Değerler
C çağrısının sonucu ile döner.
Örnekler
Ö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);
?>
Notlar
Bilginize: Bu işlev Windows sistemlerinde çalışmaz.
