#include <unistd.h>
+#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
int
main (int argc, char **argv)
{
+ int ret;
+
ASSERT (argc == 3);
- ASSERT (link (argv[1], argv[2]) == 0);
+
+ ret = link (argv[1], argv[2]);
+ if (ret < 0)
+ {
+ /* If the device does not support hard links, errno is
+ EPERM on Linux, EOPNOTSUPP on FreeBSD. */
+ switch (errno)
+ {
+ case EPERM:
+#ifdef EOPNOTSUPP
+ case EOPNOTSUPP:
+#endif
+ return 77;
+ default:
+ perror ("link");
+ return 1;
+ }
+ }
return 0;
}