#process-running #translated #detect #binary #rosetta #universal #proc

is_proc_translated

检测当前进程是否在 Rosetta 下运行为翻译后的二进制文件

2 个版本

0.1.1 2022 年 10 月 7 日
0.1.0 2022 年 10 月 7 日

#75 in macOS 和 iOS API

Download history 8430/week @ 2024-03-14 8352/week @ 2024-03-21 6587/week @ 2024-03-28 6898/week @ 2024-04-04 7032/week @ 2024-04-11 7292/week @ 2024-04-18 5603/week @ 2024-04-25 5203/week @ 2024-05-02 6008/week @ 2024-05-09 6037/week @ 2024-05-16 3920/week @ 2024-05-23 7356/week @ 2024-05-30 5899/week @ 2024-06-06 6526/week @ 2024-06-13 7039/week @ 2024-06-20 3897/week @ 2024-06-27

24,920 每月下载量
3 个 crate 中使用 (via nix_rs)

MIT/Apache

7KB

is_proc_translated

github crates.io docs.rs

检测当前进程是否在 Rosetta 下作为翻译后的二进制文件运行。

[dependencies]
is_proc_translated = "0.1"

使用 is_proc_translated

use std::process::Command;

use is_proc_translated::is_proc_translated;

fn main() {
    // Force executing the arm64 slice of a Universal Binary.
    let status = if is_proc_translated() {
        Command::new("arch")
            .arg("-arm64")
            .arg("buck")
            .arg("build")
            .status()
            .expect("failed to execute process")
    } else {
        Command::new("buck")
            .arg("build")
            .status()
            .expect("failed to execute process")
    };

    println!("process finished with: {status}");
}

许可证

许可证为 Apache License, Version 2.0 或 MIT 许可证,任选其一。
除非您明确表示,否则根据 Apache-2.0 许可证定义,您提交的任何贡献,包括有意提交以包含在此 crate 中的内容,都将双许可如上所述,不附加任何额外条款或条件。

依赖项