libc库定义了许多常量,这些常量可以作为标志传递给open()
,例如O_APPEND
,O_CREAT
等。其中某些标志仅为某些OS目标定义。如果有一种方法可以在我的代码中自由使用O_WHATEVER
,而不用担心它实际上是否在libc中定义,那就太好了:
#[cfg(???)]
const O_WHATEVER = libc::O_WHATEVER;
#[cfg(not(???))]
const O_WHATEVER = 0;
如果我上面的示例中的???
是某种is_defined(libc::O_WHATEVER)
,那就太好了。否则,我需要找出所有在libc中定义了O_WHATEVER
的操作系统组合,这确实是很痛苦的。
自Rust 1.41起。 RFC 2523 — cfg_version
and cfg_accessible
引入:
cfg_version