0

在 Windows 上,程序员可以执行以下操作:system("ls > outputFile.txt")

是否有一种独立于平台的方式来访问命令行,或者至少有一种方式来确定程序正在哪个平台上执行(因为对相同功能的调用差异很大)?

在此处输入图像描述

4

2 回答 2

1

system()它本身是一个标准的 C 函数,定义在stdlib.h. 但是,它解释其参数的方式不是标准的(例如ls在 UNIX 中,dir在 Windows/DOS 中等)。如果你真的在问是否有一种独立于平台的方式来列出目录中的文件,答案是(不幸的是)没有。一些库确实提供了可移植的(在某种程度上)实现,最值得注意的是 Boost: How can I get the list of files in a directory using C or C++?

于 2014-01-15T20:16:16.583 回答
1

system(3)函数是标准的 ANSI C,它已经独立于平台。任何符合 C 的实现都将允许您调用它来运行系统默认的命令行处理器/shell 应用程序。当然,您可以运行的实际程序会因系统而异(例如dir,仅适用于 Windows,而ls通常适用于类 Unix 平台)。

于 2014-01-15T20:16:25.160 回答