diff options
author | sshaik <sshaik> | 2005-05-26 11:17:42 +0000 |
---|---|---|
committer | sshaik <sshaik> | 2005-05-26 11:17:42 +0000 |
commit | b694219148361e33877bf90a98324bef73aa300d (patch) | |
tree | 240738f7bc2fd1904b1c8a2b49e5f14e28e559d0 | |
parent | 2f3d68c3597ef75474ec2c39dc4b24679bc6f988 (diff) |
Added readline function by bhargavi
-rw-r--r-- | utils.c | 31 | ||||
-rw-r--r-- | utils.h | 1 |
2 files changed, 32 insertions, 0 deletions
@@ -63,3 +63,34 @@ char *strip_delim (char *data, char delim) stripped_data[j] = '\0'; return stripped_data; } + +char *read_line (int fd ) +{ + int len = 128; + int size = 0; + char ch; + char *data = NULL; + + while (read (fd, &ch, 1) > 0) + { + if (!data) + { + data = (char *) malloc (sizeof (char)*len); + } + if (size%len == 0) + { + data = (char *) realloc (data, sizeof (char)*len+size+1); + } + data[size++] = ch; + if (ch == '\n') + { + if (size%len == 0) + { + data = (char *) realloc (data, sizeof (char)+size+1); + } + data[size] = '\0'; + return data; + } + } + return NULL; +} @@ -7,5 +7,6 @@ char *strip_white_space (char *data); char *strip_delim (char *data, char delim); +char *read_line (int fd); #endif |