Mekanisme mengu...LOGIN

Mekanisme mengunci fail

Mekanisme Mengunci Fail

Mekanisme mengunci fail secara amnya tidak mempunyai kesan sama sekali apabila satu fail dibuka. Bahagian pembelajaran ini sedikit abstrak.

Tidak memikirkan bagaimana untuk mencapainya?

Mengapa anda tidak dapat melihat kesannya?
Jawapan: Kerana komputer beroperasi begitu pantas, pada asasnya pada tahap milisaat. Jadi eksperimen ini sebenarnya tiada kesan.

Dalam bab ini, fahami sahaja konsep asas penguncian fail dan biasakan diri dengan fungsi penguncian fail dan mekanisme penguncian.

Penggunaan kunci fail:

Jika seseorang menulis ke fail, orang lain juga menulis ke fail pada masa yang sama Import fail tersebut.
Dalam kes ini, jika kebarangkalian perlanggaran tertentu ditemui, saya tidak tahu operasi siapa yang akan diguna pakai.
Oleh itu, pada masa ini kami memperkenalkan mekanisme kunci.
Jika pengguna A menulis atau membaca fail ini, tambahkan fail itu pada bahagian tersebut. Saya boleh membacanya, dan begitu juga orang lain.
Walau bagaimanapun, jika ini berlaku. Saya menggunakan kunci eksklusif. Fail ini kepunyaan saya. Jangan sentuh kecuali saya melepaskan kunci fail.

Nota: Tidak kira sama ada kunci fail ditambahkan, berhati-hati untuk melepaskannya.

Mari kita lihat fungsi ini:

bool flock ( resource $handle , int $operation)

Fungsi: penguncian fail nasihat ringan

Kami Mari kita lihat jenis kunci:


QQ截图20161009111405.png


Seterusnya kami menambah eksklusif untuk demo. kunci txt untuk operasi tulis.

<?php
 
$fp = fopen("demo.txt", "r+");
 
 // 进行排它型锁定
if (flock($fp, LOCK_EX)) {
 
    fwrite($fp, "文件这个时候被我独占了哟\n");
 
   // 释放锁定
    flock($fp, LOCK_UN);   
} else {
    echo "锁失败,可能有人在操作,这个时候不能将文件上锁";
}
 
fclose($fp);
 
?>

Penjelasan:

1 Dalam contoh di atas, untuk menulis fail, saya menambahkan kunci eksklusif pada fail.

2. Jika saya menyelesaikan operasi dan penulisan selesai, kunci eksklusif akan dilepaskan.

3 Jika anda sedang membaca fail, anda boleh menambah kunci kongsi mengikut idea pemprosesan yang sama.


bahagian seterusnya
<?php $fp = fopen("demo.txt", "r+"); // 进行排它型锁定 if (flock($fp, LOCK_EX)) { fwrite($fp, "文件这个时候被我独占了哟\n"); // 释放锁定 flock($fp, LOCK_UN); } else { echo "锁失败,可能有人在操作,这个时候不能将文件上锁"; } fclose($fp); ?>
babperisian kursus