具有大量输入文件的 C 程序的最佳实践

Best practice for C program with large number of input files

我正在编写一个需要 7 个输入文件的 C 程序。我可以将它们作为命令行参数传递给我的程序,但它并不十分简洁,并且可能导致它们提供的顺序出错。

我想过创建 1 个包含 7 个所需文件名的输入文件,然后将其传递给我的程序。

向 C 程序提供大量输入文件的最佳做法是什么?

通常使用多种机制来指定程序的输入文件,其中突出的(排名不分先后):

  • 单独的 command-line 个参数,可能带有 built-in 个默认值(更多内容见下文)
  • 作为参数传递的通用文件名主干,对于不同的单个文件具有不同的扩展名;具体的文件名是由程序从一个词干
  • 计算出来的
  • 一个标准或 user-specified 文件,其中包含要操作的文件的名称

这些的组合是可能的,还有其他选择。没有单一的最佳实践,选择哪种方法在某种程度上取决于意见和个人偏好,可能与特定程序的具体实用性有关。

I could pass these to my program as command line argument but it is not exactly succinct and could lead to errors with the order they are provided.

同意。

I had thought of creating 1 input file containing the 7 required file names and just passing this to my program. Is this good practice?

这是常用的方法之一。但是请注意,虽然它使命令行更加简洁,但它本身并不能解决排序问题。

就我个人而言,我不太喜欢有七个 必需 个参数的程序,但我也不喜欢被迫编写一个辅助文件来传达程序的文件名。就您确实使用 command-line 参数而言,我敦促您将它们定义为 options,在术语的 getopt() 意义上,因为混淆了参数顺序否则对您的用户来说将是一个重大的实际问题。同样,如果您提供控制文件作为传达工作文件名的方式,那么我建议您多花点功夫使用 order-insensitive 键/值格式。如果您可以提供合理的默认值,那也会改进 ease-of-use。