|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1980 Regents of the University of California. ! 3: * All rights reserved. The Berkeley software License Agreement ! 4: * specifies the terms and conditions for redistribution. ! 5: * ! 6: * @(#)symlnk_.c 5.1 6/7/85 ! 7: */ ! 8: ! 9: /* ! 10: * make a symbolic link to a file ! 11: * ! 12: * calling sequence: ! 13: * ierror = symlnk(name1, name2) ! 14: * where: ! 15: * name1 is the pathname of an existing file ! 16: * name2 is a pathname that will become a symbolic link to name1 ! 17: * ierror will be 0 if successful; a system error code otherwise. ! 18: */ ! 19: ! 20: #include <sys/param.h> ! 21: #include "../libI77/f_errno.h" ! 22: ! 23: #ifndef MAXPATHLEN ! 24: #define MAXPATHLEN 128 ! 25: #endif ! 26: ! 27: long symlnk_(name1, name2, n1len, n2len) ! 28: char *name1, *name2; ! 29: long n1len, n2len; ! 30: { ! 31: char buf1[MAXPATHLEN]; ! 32: char buf2[MAXPATHLEN]; ! 33: ! 34: if (n1len >= sizeof buf1 || n2len >= sizeof buf2) ! 35: return((long)(errno=F_ERARG)); ! 36: g_char(name1, n1len, buf1); ! 37: g_char(name2, n2len, buf2); ! 38: if (buf1[0] == '\0' || buf2[0] == '\0') ! 39: return((long)(errno=F_ERARG)); ! 40: if (symlink(buf1, buf2) != 0) ! 41: return((long)errno); ! 42: return(0L); ! 43: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.