- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
好的,我正在创建一个 C++ 程序,目前在 Linux 上。该程序将数据保存到需要访问和写入的文件中。我正在努力将我的程序安装到/usr/local/bin ,但是程序相关/必需的文件通常存储在哪里?
将文本文件放在/etc 中是行不通的,因为除非我使用 sudo 权限调用我的程序,否则我无法写入该文件。同样,出于同样的确切原因,/usr/local/share 和我的程序的目录也不起作用。
这个问题的典型解决方案是什么,或者人们如何解决这个问题?我应该在哪里存储我的程序需要读取和写入的文件?我不确定我的问题措辞是否有误,但实在无法在网上找到对此的任何见解。
最佳答案
你说你在命令行中很高效。假设您正在编写一些 shell 脚本而不是 C++ 来完成这项工作,您将在哪里存储其配置和数据文件?
概念不会因语言而改变。
如果该工具是全局的,用户通常只打算在每台(虚拟)机器上运行一个,您可以将只读配置放在 /etc/<tool>
中,以及您在 /var/lib/<tool>
中的数据, 以 root 身份运行,但尽早放弃特权。
如果该工具是针对每个用户的,其中多个用户可能希望同时使用它并可能使用不同的设置,您可以在/etc 中进行全局配置,并在 ~/.config/<your-app>
中进行用户覆盖。 .你的数据将进入 ~/.local/<your-app>
.
而且这一切都不会因语言而异。改变的是你如何将字符串拼凑成你想要读取的路径,你如何读取文件等,以及跨平台(Windows 和 Mac 的相同问题会给出不同的答案)但这不是你的问题包含。
我认为您走在正确的轨道上,我认为与“C++”部分相关的只是一些混淆,而这实际上并没有改变问题的答案。
关于c++ - 将我的 c++ 程序的数据保存在 linux 文件系统中的什么位置以便能够访问它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55543027/
我是一名优秀的程序员,十分优秀!