函式名:eio_sync_file_range()
函式描述:eio_sync_file_range() 用於同步檔案範圍到磁碟上。
適用版本:PHP 7 >= 7.4.0,PECL ev >= 1.0.0
語法:eio_sync_file_range(resource $fd, int $offset, int $nbytes, int $flags)
引數:
- $fd: 必需。已開啟的檔案的檔案指標資源。
- $offset: 必需。檔案偏移量,表示從檔案的哪個位置開始同步。
- $nbytes: 必需。同步的位元組數。
- $flags: 可選。同步方式,預設為 0。支援以下標誌:
- EIO_SYNC_FILE_RANGE_WAIT_BEFORE: 在同步之前等待已緩衝的寫操作完成。
- EIO_SYNC_FILE_RANGE_WRITE: 強制將資料緩衝寫入磁碟。
- EIO_SYNC_FILE_RANGE_WAIT_AFTER: 在同步之後等待檔案系統重新整理已寫入的資料。
返回值:如果成功則返回 TRUE,失敗則返回 FALSE。
示例:
<?php
$fd = eio_open('test.txt', EIO_O_RDWR, NULL, NULL);
if ($fd) {
$offset = 0;
$nbytes = 4096;
$flags = EIO_SYNC_FILE_RANGE_WRITE;
eio_sync_file_range($fd, $offset, $nbytes, $flags, function($data, $result) {
if ($result) {
echo "檔案同步成功。\n";
} else {
echo "檔案同步失敗。\n";
}
eio_close($data);
}, $fd);
}
eio_event_loop();
?>
注意事項:
- 必需在已經開啟的檔案上呼叫此函式。
- 檔案指標資源由 eio_open() 函式獲取。
- 必要時可以使用 eio_event_loop() 來實現非同步操作。
- 可以在回撥函式中進行檔案控制代碼的關閉等後續操作。