aboutsummaryrefslogtreecommitdiff
path: root/readlink.c
diff options
context:
space:
mode:
authormarkw <markw@69ca8d6d-28ef-0310-b511-8ec308f3f277>2001-04-30 18:17:00 +0000
committermarkw <markw@69ca8d6d-28ef-0310-b511-8ec308f3f277>2001-04-30 18:17:00 +0000
commitdb1ea6ee76a5106c45398bdc17c2db04da99ecf7 (patch)
treea90a2bc3c3815f7f0e70f009b9b175736902a848 /readlink.c
parentc9a51e8d05d64580a0f9ccce5b77c5b4ad990541 (diff)
downloadbusybox-w32-db1ea6ee76a5106c45398bdc17c2db04da99ecf7.tar.gz
busybox-w32-db1ea6ee76a5106c45398bdc17c2db04da99ecf7.tar.bz2
busybox-w32-db1ea6ee76a5106c45398bdc17c2db04da99ecf7.zip
Made new xreadlink function for libbb and changed applets to use it instead of
readlink(2). git-svn-id: svn://busybox.net/trunk/busybox@2495 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'readlink.c')
-rw-r--r--readlink.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/readlink.c b/readlink.c
index 74196e11d..226649544 100644
--- a/readlink.c
+++ b/readlink.c
@@ -30,21 +30,17 @@
30int readlink_main(int argc, char **argv) 30int readlink_main(int argc, char **argv)
31{ 31{
32 char *buf = NULL; 32 char *buf = NULL;
33 int bufsize = 128, size = 128; 33
34 /* no options, no getopt */
34 35
35 if (argc != 2) 36 if (argc != 2)
36 show_usage(); 37 show_usage();
37 38
38 while (bufsize < size + 1) { 39 buf = xreadlink(argv[1]);
39 bufsize *= 2;
40 buf = xrealloc(buf, bufsize);
41 size = readlink(argv[1], buf, bufsize);
42 if (size == -1)
43 perror_msg_and_die("%s", argv[1]);
44 }
45
46 buf[size] = '\0';
47 puts(buf); 40 puts(buf);
41#ifdef BB_FEATURE_CLEAN_UP
42 free(buf);
43#endif
48 44
49 return EXIT_SUCCESS; 45 return EXIT_SUCCESS;
50} 46}