12532Sdlw /* 2*12144Sdlw char id_link[] = "@(#)link_.c 1.2"; 32532Sdlw * 42532Sdlw * make a link to an existing file 52532Sdlw * 62532Sdlw * calling sequence: 72532Sdlw * ierror = link(name1, name2) 82532Sdlw * where: 92532Sdlw * name1 is the pathname of an existing file 102532Sdlw * name2 is a pathname to be linked to file name1 112532Sdlw * ierror will be 0 if successful; a system error code otherwise. 122532Sdlw */ 132532Sdlw 142532Sdlw #include "../libI77/f_errno.h" 15*12144Sdlw #include <sys/param.h> 16*12144Sdlw #ifndef MAXPATHLEN 17*12144Sdlw #define MAXPATHLEN 128 18*12144Sdlw #endif 192532Sdlw 202532Sdlw long link_(name1, name2, n1len, n2len) 212532Sdlw char *name1, *name2; 222532Sdlw long n1len, n2len; 232532Sdlw { 24*12144Sdlw char buf1[MAXPATHLEN]; 25*12144Sdlw char buf2[MAXPATHLEN]; 262532Sdlw 272532Sdlw if (n1len >= sizeof buf1 || n2len >= sizeof buf2) 282532Sdlw return((long)(errno=F_ERARG)); 292532Sdlw g_char(name1, n1len, buf1); 302532Sdlw g_char(name2, n2len, buf2); 31*12144Sdlw if (buf1[0] == '\0' || buf2[0] == '\0') 322532Sdlw return((long)(errno=F_ERARG)); 332532Sdlw if (link(buf1, buf2) != 0) 342532Sdlw return((long)errno); 352532Sdlw return(0L); 362532Sdlw } 37