Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void my_realloc(char **old)
- {
- char *new;
- unsigned long int i;
- new = malloc(sizeof(*old) * 2);
- puts(new);
- i = 0;
- while (i < sizeof(new) - 1)
- new[i++] = 0;
- i = 0;
- while (i < 1)
- {
- new[i] = *old[i];
- i++;
- }
- *old = new;
- }
- int get_next_line(const int fd, char **line)
- {
- char *read_buffer;
- char *line_buffer;
- int bytes_read;
- unsigned long int i;
- if ((read_buffer = malloc(BUFF_SIZE)) == 0 ||
- (line_buffer = malloc(10)) == 0 ||
- (read(fd, read_buffer, 0)) < 0 ||
- fd < 0)
- return (-1);
- i = 0;
- while ((bytes_read = read(fd, read_buffer, 1)) > 0)
- {
- if (i >= sizeof(line_buffer))
- {
- my_realloc(&line_buffer);
- }
- if (*read_buffer == '\n')
- break ;
- line_buffer[i] = *read_buffer;
- i++;
- }
- *read_buffer = 0;
- *line = line_buffer;
- free(read_buffer);
- return (bytes_read || *line_buffer);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement