请原谅我蹩脚的英语
我尝试使用setxattr()
为某些文件设置扩展属性的值,代码是这样的:
int set_scl(string file_name, char scl)
{
char scl_data[16];
scl_data[0] = scl;
ssize_t size = 1;
size = setxattr(file_name.c_str(), "user.DosStream.easescl", scl_data, size, 0);
if (size == -1)
{
perror("set scl:");
return -1;
}
return 0;
}
但是一旦我对文件(例如1234.xlsx
)执行此操作,然后我无法打开它,但我仍然可以看到它。Excel 的错误信息是:
找不到 \\192.168.2.163\wy\1234.xlsx。
顺便说一句,smb.cnf
我已经设置 vfs objects = acl_xattr streams_xattr
了https://www.samba.org/samba/docs/current/man-html/vfs_streams_xattr.8.html
当我使用 Process Monitor 跟踪它时,我发现一个事件的路径是 \\192.168.2.163\wy\1234.xlsx:easescl,操作是 'CreateFile' 结果是 'NAME NOT FOUND'
我应该怎么做才能解决这个问题?