如何用C程序打包配置文件?

如何用C程序打包配置文件?,c,C,我目前正在尝试为我开发的一个软件构建一个新版本。软件接受一个简单的命令行参数,并将该参数附加到文件末尾。我的问题是我想更改程序,以便: 有人可以设置保存文件的标准位置 程序将记住该位置 它仍然适用于在mac、linux或windows上安装C程序的任何人 所以基本上我想弄清楚如何创建一个C可执行文件,它带有持久内存,可以读取和修改。或者,我会采取任何方式创建一个安装程序,使任何人谁想要使用我的程序容易 如果这是一个java程序,我只会将其添加到jar文件中,但我从未见过针对C语言的文档。我会添加

我目前正在尝试为我开发的一个软件构建一个新版本。软件接受一个简单的命令行参数,并将该参数附加到文件末尾。我的问题是我想更改程序,以便:

  • 有人可以设置保存文件的标准位置

  • 程序将记住该位置

  • 它仍然适用于在mac、linux或windows上安装C程序的任何人

  • 所以基本上我想弄清楚如何创建一个C可执行文件,它带有持久内存,可以读取和修改。或者,我会采取任何方式创建一个安装程序,使任何人谁想要使用我的程序容易


    如果这是一个java程序,我只会将其添加到jar文件中,但我从未见过针对C语言的文档。

    我会添加特定于平台的代码,以将您的设置存储在特定平台用户期望的任何区域。因此:

    • 对于Linux:将配置文件存储在
      $XDG\u CONFIG\u HOME
      指定的位置
    • 对于Mac:使用
    • 对于Windows:使用注册表

    在环境变量中设置路径,然后从应用程序中读取该路径。我同意设置环境变量。也选择一个合适的默认位置。在Unix、Linux和Mac上,考虑使用文件
    $HOME/.progname
    或类似的目录以及该目录中的文件。哪个更好取决于项目的目的和未来方向。例如,如果单个用户希望在多台计算机上使用相同的文件内容,则该文件就可以了。如果他们在不同的机器上需要不同的文件内容,请使用目录并根据机器名配置文件名。提供命令行选项来指定文件。@除非用户去编辑他们的bash配置文件(或他们正在使用的任何shell的等效配置文件),否则OldProgrammer环境变量不是持久的。提供了一个很好的跨平台持久设置工具文件集合。没有它也可以这样做,但它已经解决了Linux和Windows上的默认用户设置存储路径。它本质上提供了一个类似ini的文件,您可以在该文件中的不同
    [部分]
    中保存任何类型的数据。它可以使用默认设置轻松处理旧用户/新用户,直到用户修改一个默认设置,然后该设置对该用户保持不变。您可以找到一个使用Gsettings工具的示例,其中为应用程序提供了两个默认设置,然后读取保存的密钥文件以读入用户对编辑器设置所做的任何持久更改,最后在退出之前将其使用过程中所做的任何更改写回密钥文件/