gpt4 book ai didi

C:删除功能会删除所有文件吗?

转载 作者:行者123 更新时间:2023-12-03 03:53:24 25 4
gpt4 key购买 nike

我正在使用这样的东西:

char *file;
file = (char *)malloc(BUFSIZE * sizeof(char));
printf("Enter the filename:");
scanf("%s", file);
if(remove(file)) {
printf("Error while removing");
}

我创建了两个文件:

touch filetobedeleted1.txt
chmod 777 filetobedeleted1.txt

touch filetobedeleted2.txt
chmod 444 filetobedeleted2.txt

现在,我的程序删除了这两个文件,但这不应该发生,对吗?有人知道代码有什么问题吗?

编辑:添加了将名称放入文件的代码...

好吧...看起来这一切都取决于目录上设置的权限,但是有没有办法使用文件权限作为检查?

最佳答案

在 POSIX 文件系统语义下,用于删除文件的权限检查是是否可以写入该文件所在的目录; 您是否对文件本身具有写权限。

(如果目录设置了粘性位,那么您也必须是该文件的所有者 - /tmp 使用此)。

关于C:删除功能会删除所有文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2173494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com