我正在用C编写一个程序,每次开始设置一些变量时,必须检查配置文件。如何在Linux中使用C创建`/ etc`文件夹内的文件?
在程序的第一次启动时,我想不会有任何配置文件,所以我需要创建它(使用默认设置)。
我说过程序的配置文件属于文件夹/etc
,更具体地说是为程序本身创建的特定文件夹(即/etc/myprog
)。我应该问的第一个问题是:这是真的吗?为什么/etc
?
在任何情况下我试图创建使用此该文件:
open("/etc/myprog/myprog.conf", O_WRONLY | O_CREAT, 0644);
open
的返回-1
并设置errno
全局变量来2
(即文件夹不存在)。 如果我尝试创建文件直内/etc
(因此"/etc/myprog.conf"
为open
的第一个参数)我得到代替errno
设置为13
(即权限被拒绝)。
有没有办法让我的程序权限写在/etc
?
编辑:我看到大多数用户建议使用sudo
。如果可能的话,我宁愿避免这个选项,因为这个文件只需要创建一次(在第一次启动时)。也许我应该制作2个不同的可执行文件? (例如myprog_bootstrap
和myprog
,具有只运行与sudo
第一个)
您是否正在将该程序作为拥有该目录写权限的人运行? –
'sudo your_exec' ....? – LPs
_ [sudo](https://www.sudo.ws/)_获取特权 –
ryyker