gpt4 book ai didi

rust - 有没有办法检查应用程序运行的操作系统是 32 位还是 64 位?

转载 作者:行者123 更新时间:2023-11-29 08:08:39 27 4
gpt4 key购买 nike

确定它是否为 64 位的 bool 值是完美的,但表示位数的整数也可以。

我想捕获有关 PC 架构的一些信息以用于统计目的。

最佳答案

在最好的情况下,您的程序已经针对正确的体系结构/目标进行了编译。这意味着您在编译时已经知道程序是针对 32 位还是 64 位目标编译的。您可以使用 cfg() attribute 检查或 cfg!() macro :

fn is_compiled_for_64_bit() -> bool {
cfg!(target_pointer_width = "64")
}

#[cfg(target_pointer_width = "32")]
fn foo() {
println!("foo compiled for 32 bit");
}

#[cfg(target_pointer_width = "64")]
fn foo() {
println!("foo compiled for 64 bit");
}

但如果您只想向用户发送 32 位二进制文​​件,则您的程序将由用户的 32 位硬件本地执行,由用户的 64 位硬件以兼容模式执行。要确定您的程序是实际运行在 32 位体系结构上还是仅运行在 32 位兼容模式下更加困难,并且取决于您的操作系统。我不知道有任何简单的跨平台方法可以做到这一点。无论如何,我建议您针对每个目标架构分别进行编译。

关于rust - 有没有办法检查应用程序运行的操作系统是 32 位还是 64 位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44655115/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com