Re: link(2) allows directory hard links, man page says otherwise
Re: link(2) allows directory hard links, man page says otherwise
- Subject: Re: link(2) allows directory hard links, man page says otherwise
- From: "Mike Frysinger" <email@hidden>
- Date: Wed, 12 Dec 2007 18:35:38 -0500
On Dec 12, 2007 6:12 PM, Rosyna <email@hidden> wrote:
> The actual implementation of link() on 10.5 allows for directory hard
> links on HFS+ as long as they follow these rules:
>
> - Source parent and destination parent cannot match
> - A link is not permitted in the root directory
> - Parent of 'pointed at' directory is not the root directory
> - The 'pointed at' directory (source) is not an ancestor of the new
> directory hard link (destination).
> - No ancestor of the new directory hard link (destination) is a
> directory hard link.
>
> The man page for link(2) says (in various places):
>
> As mandated by POSIX.1, path1 may not be a directory.
>
>
> [EPERM] The file named by path1 is a directory.
>
>
> STANDARDS
> The link() function is expected to conform to IEEE Std
> 1003.1-1988 (``POSIX.1'').
>
>
>
> But actually calling link() allows for directory hard links. Is this
> an error in the documentation, an error in the function, or am I
> connecting two things that shouldn't be?
the POSIX standard you reference is outdated. please refer to:
http://www.opengroup.org/onlinepubs/009695399/functions/link.html
where it quotes:
If path1 names a directory, link() shall fail unless the process has
appropriate privileges and the implementation supports using link() on
directories.
and under errors it states:
[EPERM]
The file named by path1 is a directory and either the calling
process does not have appropriate privileges or the implementation
prohibits using link() on directories.
-mike
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden