On Mon, Dec 03, 2001 at 01:07:13AM +0100, Daniel Phillips wrote:
> Hi, sorry for jumping into this a little late, but...
No problem. BTW, we have reworked the interfaces once more and
will send out the latest revision in the next couple of days -
it does away with commands and flags completely, except for this
one instance of flags in the set operation...
> On November 16, 2001 12:18 am, Nathan Scott wrote:
> > > What is the distinction between "set" and "replace" or "set" and "create"?
> > +#define EA_CREATE 0x0001 /* Set the value: fail if attr already exists
> > */
> > +#define EA_REPLACE 0x0002 /* Set the value: fail if attr does not exist
> > */
> > Whereas "set" is simply set the named attribute value, creating the
> > attribute if need be, replacing the value if the attribute exists,
> > and then return success.
> What is the purpose of these distinctions? Does anyone rely on them? Do such
> distinctions exist in an existing implementation?
The purpose is to provide user tools with more control over the
creation or updating of an attribute and its value. I don't think
the replace flag is very widely used, but I have seen the create
flag used in places - eg. the XFS fsr tool uses that flag.
The IRIX extended attribute interfaces provide these flags - Andreas
has also examined the implementations, man pages, etc, of several other
operating systems, so he'll be able to tell us if any others provide
this sort of thing too.