• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: link(2) allows directory hard links, man page says otherwise
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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

  • Follow-Ups:
    • Re: link(2) allows directory hard links, man page says otherwise
      • From: Rosyna <email@hidden>
References: 
 >link(2) allows directory hard links, man page says otherwise (From: Rosyna <email@hidden>)

  • Prev by Date: link(2) allows directory hard links, man page says otherwise
  • Next by Date: Re: link(2) allows directory hard links, man page says otherwise
  • Previous by thread: link(2) allows directory hard links, man page says otherwise
  • Next by thread: Re: link(2) allows directory hard links, man page says otherwise
  • Index(es):
    • Date
    • Thread