【问题标题】:How to know on which OS (Linux, Windows, Android) a process is running?如何知道进程在哪个操作系统(Linux、Windows、Android)上运行?
【发布时间】:2023-03-06 22:57:01
【问题描述】:

如何知道进程在哪个操作系统(Linux、Windows、Android)上运行?

我构建了一个C++ 库,它可以在 Linux、Windows 和 Android 上运行。

我需要知道进程在哪种操作系统上运行,以指定不同的默认路径来写入日志。

我怎样才能得到这些信息?

更新: 是否可以区分构建的库(加载和)运行在哪个操作系统(即LinuxAndroid)上。我说的对吗?

【问题讨论】:

    标签: android c++ linux windows cross-platform


    【解决方案1】:

    这主要是编译器特定的定义。 例如 Visual C++ #if defined (_MSC_VER) 或 #if !defined(_MAC) ||定义(_WIN32REG) 您的开发环境在这里很重要。

    【讨论】:

    • 它只在编译而非运行时有效。
    • @John 如果它在编译时可以工作,你可以让它在运行时工作。如果是 Windows,则使用 #if 来 #define OS_NAME "WINDOWS",如果是 Linux,则使用 #define OS_NAME "LINUX"。然后根据需要使用 OS_NAME 变量。
    • @Gabe Sechan 是否可以区分动态库是为LinuxAndroid 构建的,因为Android 是基于Linux 内核构建的?
    • @John:对于一个库来说,可能会有没有的区别,因为Android是Linux的一个子集。为什么不检查需要检查的内容,而不是通过代理检查?如果您需要操作系统的功能 Foo,请检查 Foo,而不是操作系统。
    • @MSalters 如果我理解正确,则无法区分构建的库(加载和)运行在哪个操作系统(即LinuxAndroid)上。我说的对吗?
    猜你喜欢
    • 1970-01-01
    • 2020-11-28
    • 2020-04-22
    • 2011-07-06
    • 2010-09-15
    • 1970-01-01
    • 2018-07-14
    • 1970-01-01
    相关资源
    最近更新 更多