如何使用 Go 设置文件的不可变属性?我需要一个在文件上设置/取消设置此属性的函数,类似于chattr +i file我发现这个:IoctlSetInt如何使用它? file, err := os.Open("file") if err != nil { fmt.Printf("%s\n", err) return } err = unix.IoctlSetInt(int(file.Fd()), unix.PERF_EVENT_IOC_MODIFY_ATTRIBUTES, unix.STATX_ATTR_IMMUTABLE) if err != nil { fmt.Printf("%s\n", err) }错误:inappropriate ioctl for device
1 回答
哔哔one
TA贡献1854条经验 获得超8个赞
我不确定你在这里使用了正确的 ioctl...至少 chattr 和在 C 中使用ioctl() 设置不可变标志FS_IOC_SETFLAGS
的解决方案(你可以看到 chattr 使用 做什么strace
)。您可以查看/usr/include/linux/fs.h
,特别是有关“Inode flags”.
- 1 回答
- 0 关注
- 94 浏览
添加回答
举报
0/150
提交
取消