Source code of ln command
Greg 'groggy' Lehey
grog at FreeBSD.org
Thu May 6 18:18:49 PDT 2004
On Wednesday, 5 May 2004 at 9:10:27 -0400, Bill Moran wrote:
> Thuan Truong wrote:
>>
>> I would like to have the source code of 'ln' (make hard or symbolic
>> links to files) command from Free-BSD ftp site. Please let me know
>> how and where to unload it.
>
> If you installed source on your FreeBSD system, it's in /usr/src/bin/ln
>
> Otherwise, you can download any version you want from cvs:
> http://www.freebsd.org/cgi/cvsweb.cgi/src/bin/ln/
Note that ln(1) is a relatively simple interface to link(2), which is
in the kernel. Here's the complete source of the version supplied
with the Sixth Edition of UNIX:
main(argc, argv)
char **argv;
{
static struct ibuf statb;
register char *np;
if (argc<2) {
write(1, "Usage: ln target [ newname ]\n", 29);
exit(1);
}
if (argc==2) {
np = argv[1];
while(*np++);
while (*--np!='/' && np>argv[1]);
np++;
argv[2] = np;
}
stat(argv[1], &statb);
if ((statb.iflags&FMT) == DIR) {
write(1, "No directory link\n", 18);
exit(1);
}
if (link(argv[1], argv[2])<0) {
write(1, "Can't link\n", 11);
exit(1);
}
exit(0);
}
Greg
--
Note: I discard all HTML mail unseen.
Finger grog at FreeBSD.org for PGP public key.
See complete headers for address and phone numbers.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-questions/attachments/20040507/5e704fc4/attachment.bin
More information about the freebsd-questions
mailing list