读书人

小妹儿向大家请问个有关问题-多谢

发布时间: 2013-06-26 14:29:32 作者: rapoo

小妹儿向大家请教个问题--谢谢
To ALL
我用ioctl 修改文件的属性。代码如下:
#include <fcntl.h>
#include<sys/ioctl.h>
#include<linux/fs.h>
#include <errno.h>
#include <sys/vfs.h>
#include<stdio.h>
#include<stdlib.h>
#include <iostream>
using namespace std;

char* diskname="/home/biz/TEST/aa";

int main()
{
int fd = open(diskname,O_RDONLY);
if(-1 == fd)
{
perror("open");
return 0;
}
else
{ //FS_COMPRBLK_FL //FS_COMPR_FL
if(ioctl(fd,FS_IOC_SETFLAGS,FS_COMPR_FL) >= 0) {
cout<<"succes"<<endl;
}
else {
perror("ioctl");
}
}

return 0;
}

输出有错误:ioctl: Bad address
请大家帮忙看看谢谢 linux?ioctl
[解决办法]

引用:
Quote: 引用:

可以使用 chmod

http://linux.chinaunix.net/techdoc/system/2009/07/04/1121929.shtml

哥哥:chmod 只能修改 读 写 执行 三种权限。
我要的是 chattr +e 文件名。修改文件属性。并且通过strace chattr 发现调用系统的ioctl(fd,FS_IOC_SETFLAGS,XXX,) 但是第三个参数XXX 我就不知道设定什么了? 通过内核代码好像是FS_COMPR_FL。但是 出现了

输出有错误:ioctl: Bad address

有什么好的建议吗?谢谢。
这就不清楚了,看看有么有 chattr 函数

读书人网 >UNIXLINUX

热点推荐