【发布时间】:2014-01-16 13:03:46
【问题描述】:
我在 Ubuntu 上运行的 C 代码有一行
system("ls -l | wc > temp.txt");
我想让它在 Windows 上运行,这样它就必须独立于操作系统。我该怎么做。 谁能帮帮我?
【问题讨论】:
-
如果您的代码需要跨不同操作系统移植,那么很简单:不要使用
system()。要真正回答您的问题:您可以在模拟 POSIX 环境的 Windows 之上安装诸如 MinGW 或 Cygwin 之类的层。 -
@H2CO3 Windows 中的 POSIX 子系统足以完成此任务。不需要额外的库。
-
@IInspectable 是吗?所以如果我继续在 cmd.exe 中输入
ls -l | wc,我会得到我的结果吗?我不信。有大量的偏差和遗漏的东西(库和 API、工具等)使得无法将 Windows 用作正确的 POSIX 系统,即使它包含 POSIX 子系统。 -
@H2CO3 您将 POSIX 子系统与命令行解释器混淆了。同样,Windows 中的 POSIX 子系统足以完成这项任务。
-
@IInspectable 此外,
ls和wc的可用性确实 NOT 取决于命令行解释器。如果安装了它们,那么它们可以在任何命令解释器下运行。有一个 POSIX 标准所需的命令行工具列表,它们的存在与特定系统上使用的特定命令行解释器独立。因此,如果 Windows 符合 POSIX,则可以将ls -al敲入 cmd.exe 并输出结果。
标签: c windows ubuntu operating-system command