Sorry, I haven't really used Tiger since 2006. For me it's pretty ancient history, and for all intents and purposes, I'm personally getting close to starting to live on whatever comes after 10.6. 8-).
If you are using 10.4, there's generally not a way to do it, short of creating a file, attempting to set attributes, and seeing what happens. If you end up with a poop file, they are not natively supported.
In general, the volume capability is there to tell the OS whether or not it needs to create poop files or use vnop_ calls into the FS (i.e. is there native support, or does the OS need to fake it for the FS when making vn_ calls internally?). This is done at the VFS layer. Above that, as far as anyone is concerned, all filesystems support extended attributes, resource forks, ACLs, and so on.
Sorry if that was not clear.
Whether ACLs are turned on on a given volume or not is a mount option. In 10.4, the default was off; in 10.5 and later, the default was on.
Hi,
Actually my man pages are not showing either of VOL_CAP_INT_EXTENDED_SECURITY or VOL_CAP_INT_EXTENDED_ATTR. I use Mac OS X 10.4
However, the file /usr/include/sys/attr.h shows
#define VOL_CAP_INT_EXTENDED_SECURITY 0x00000400
but not
VOL_CAP_INT_EXTENDED_ATTR
Thanks.
On 4/25/09, Terry Lambert <email@hidden> wrote:
On Apr 24, 2009, at 11:38 PM, rohan a wrote:
Hello,
How can I determine if a volume supports extended attributes before I can actually call the functions getxattr() or setxattr()?
Read 12 lines further in the manual page for getattrlist(), until you get to two capabilities past the VOL_CAP_INT_EXTENDED_SECURITY to the VOL_CAP_INT_EXTENDED_ATTR entry.
Note that this only refers to native wupport.
Basically, if a volume doesn't support ACLs natively, then ACLs are stored in a filesect in an extended attribute. If it doesn't support extended attributes natively, then extended attributes are stored in poop files.
So worst case, you have an ACL in an extended attribute in a poop file.
There are also mount options that control whether or not the volume is going to support ACLs; by default, if it sees that the ACL attribute was turned on previously, it will turn it on when the volume is mounted, unless you remount it or ask it not to for a given mount instance, in which case it will turn them off.
-- Terry