11 个版本
0.2.1 | 2021 年 12 月 20 日 |
---|---|
0.2.0 | 2021 年 10 月 25 日 |
0.1.8 | 2021 年 9 月 25 日 |
0.1.7 | 2021 年 8 月 10 日 |
0.1.4 | 2020 年 1 月 1 日 |
#66 in 文件系统
613,189 每月下载量
在 297 个 Crates 中使用 (直接使用 38 个)
50KB
1K SLoC
fslock
使用文件作为锁的 API。通过禁用特性 std
支持 non-std crates。
类型
目前仅提供一个类型:LockFile
。它在关闭后不会销毁文件,并且在 Unix 和 Windows 中对同一进程拥有的不同文件句柄的锁定行为不同,除非您激活了 multilock
特性,该特性启用了在所有平台上按文件描述符/句柄锁定文件的 open_excl
方法。
示例
use fslock::LockFile;
fn main() -> Result<(), fslock::Error> {
let mut file = LockFile::open("mylock")?;
file.lock()?;
do_stuff();
file.unlock()?;
Ok(())
}
主分支上的文档
lib.rs
:
使用文件作为锁的 API。通过禁用特性 std
支持 non-std crates。
类型
目前仅提供一个类型:LockFile
。它在关闭后不会销毁文件。在任何平台上,锁定都是按句柄进行的,而不是按进程。然而,在 Unix 上,在 fork
的情况下,文件描述符可能会被复制以共享相同的锁,但在 Rust 中,fork
通常被认为是 unsafe
。
示例
use fslock::LockFile;
fn main() -> Result<(), fslock::Error> {
let mut file = LockFile::open("testfiles/mylock.lock")?;
file.lock()?;
do_stuff();
file.unlock()?;
Ok(())
}
依赖项
~215KB