Click here to Skip to main content
15,860,972 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
Hello:
Everyone,I want to port WinApi DeviceIoControl to Linux Ioctl.

//Windows
USHORT in = COMPRESSION_FORMAT_DEFAULT;
DWORD cbReturned; 
DeviceIoControl(hDevice,FSCTL_SET_COMPRESSION,&in,sizeof(in),NULL,0,&cbReturned,NULL);


//Linux
ioctl(hDevice,FSCTL_SET_COMPRESSION,&value)


But.I can not find FSCTL_SET_COMPRESSION in my Linux.

What is head name of FSCTL_SET_COMPRESSION?

http://lxr.free-electrons.com/source/fs/cifs/smbfsctl.h#L41[^]

What should i do? Thanks.

Hello how do i port DeviceIoControl(hDevice,FSCTL_SET_COMPRESSION,&in,sizeof(in),NULL,0,&cbReturned,NULL) to Linux Thanks.
Posted
Updated 24-Jun-13 1:32am
v2

1 solution

The answer is here:

C++
int flags = 0;
ioctl(fd,FS_IOC_GETFLAGS,&flags);
flags |= FS_COMPR_FL;
flags &= ~FS_NOCOMP_FL;
ioctl(fd,FS_IOC_SETFLAGS,&flags);

Thanks!
 
Share this answer
 
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900