NAME 	symlink, _cpfile - Emulate the creation of softlinks

SYNOPSYS
    #include <unistd.h>  [here we may find the system's version]
    #include <sys/unistdx.h>  

    int symlink(const char *oldname, const char *newname); /* stub, sets EPERM */
    int _cpfile(const char *oldname, const char *newname); /* copy identically */

 OR
    #define _CPYFILE_FOR_SYMLINK
    #include <sys/unistdx.h>  

    int symlink(const char *oldname, const char *newname);  /* emulate by copy */

DESCRIPTION
     symlink() returns (-1) and sets errno accordingly. 
     _cpfile() creates newname as identical clone of oldname.

     If _CPYFILE_FOR_SYMLINK is defined, on the contrary symlink() copies
     the file oldname to newnmame, while updating date and time attributes.
     Modifying or deleting one of the files leaves the other one untouched.
     Expect problems with certain ill behaving programs, which might mix 
     oldname and newnmame.
       If successful, _cpfile() and symlink() return (0).

  ERRORS

    EPERM: as FAT and HPFS do not allow symbolic links. For more general errors,
           cf. fopen(), access().


IMPLEMENTATION

      symlink() is implemented as a macro, calling the stub symlink1() or the
      emulation function symlink2(), if _CPYFILE_FOR_SYMLINK has been defined
      previously.

  TODO

     A link database, a _posixRedirRoot() function to emulate a Posix file system
     and real implementations. ;-)


AUTHORS and Copyright

    Cf. the sources. Preferably also YOU.
