1

我正在使用ubuntu linux,我只是一个初学者是c语言我创建了一个程序,当在文件夹内启动时创建一个锁定文件,但文件和文件夹都带有[DOT],如.folder和.file和linux隐藏这样文件和文件夹,我有另一个程序检查文件是否存在

FILE* lockfile = fopen("/.folder/.lock", "r");
if (!lockfile) {
    printf("Cannot find lock file");
} else {
    printf("lock file found");
}

该文件夹位于根目录中,我只想读取该文件,所以我给了“r”作为访问权限? 如何通过c读取linux中的隐藏文件和文件夹?

编辑:添加图像以使事情更清晰

文件夹

.folder它拥有当前用户所有权限的目录

文件.lock文件还具有当前用户的读取权限,所以我认为权限没有问题或者我仍然错了?

4

2 回答 2

4
i just wanna read the file so i gave "r" as the access

这就是问题所在。如果您对某个文件夹只有读取 ( r) 访问权限,则只能列出 ( ls) 其内容,而不能读取或写入该文件夹内的任何文件。这就是fopen失败的原因。

x如果您想读取其中的文件,您还应该授予该目录的 execute( ) 权限。因此该目录将同时具有读取和执行权限(rx)。

于 2012-12-05T18:37:56.583 回答
3

*nix 中没有“隐藏”文件之类的东西。前导点是一种约定,后面是禁止显示它们的工具,但它们与系统中任何其他相同类型的文件系统对象没有区别。

于 2012-12-05T18:37:17.250 回答