我正在使用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”作为访问我做了很多搜索,但只找到了基于Windows的程序的答案,任何人都可以指出我错在哪里或任何它的解决方案? 我如何通过c?
读取linux中的隐藏文件和文件夹编辑:添加图片以使事情更清晰
folder http://i47.tinypic.com/2z9cvpl.png
.folder
目录,它拥有当前用户的所有权限
file http://i47.tinypic.com/23j6747.png
.lock
文件还具有当前用户的读取权限,因此我不认为该权限存在问题,或者我仍然错了?
答案 0 :(得分:4)
i just wanna read the file so i gave "r" as the access
这是问题所在。如果您只有 读取(r
)对文件夹的访问权限,则只能列出(ls
)其中的内容,而不能读取或写入其中的任何文件夹。这就是fopen
失败的原因。
如果要读取其中的文件,还应该对该目录赋予执行(x
)权限。因此该目录将同时具有读取和读取功能。执行权限(r
和x
)。
答案 1 :(得分:3)
* nix中没有“隐藏”文件。前导点是一种惯例,后面是禁止显示的工具,但它们与系统中相同类型的任何其他文件系统对象没有区别。