gpt4 book ai didi

c - fchmod() 无法在 C 中正确应用文件权限

转载 作者:太空宇宙 更新时间:2023-11-04 07:15:24 24 4
gpt4 key购买 nike

这是我尝试对文件应用权限的部分代码。

fd=fopen(file_name,"wb");
fchmod(fd,(mode_t)perm);

其中 perm 是一个整数。例如:644 或 755我试过不使用模式进行转换。

最佳答案

除了已经提到的使用八进制常量的问题外,您错误地调用了 fchmod - 原型(prototype)是:

 int
fchmod(int fildes, mode_t mode);
^^^^^^^^^^

但是您正在为第一个参数传递 FILE *(由 fopen 返回)!要么使用 open 而不是 fopen,这样您就可以使用 int fildes,或者使用 chmod文件名。

这里有两条重要的要点:

  1. 您应该始终启用编译器警告,并注意任何警告。如果您这样做了,那么很明显您错误地调用了 fchmod

  2. fchmod 这样的调用会返回一个状态 - 你不应该忽略它!在您的情况下,它很可能是非零的,因为您传递了一个无效的 fildes 参数。因此,即使代码是正确的,您仍然可以从非零状态中学到一些东西。

关于c - fchmod() 无法在 C 中正确应用文件权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25301577/

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