Advertisement
Guest User

Untitled

a guest
Dec 9th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. void my_realloc(char **old)
  2. {
  3. char *new;
  4. unsigned long int i;
  5.  
  6. new = malloc(sizeof(*old) * 2);
  7. puts(new);
  8. i = 0;
  9. while (i < sizeof(new) - 1)
  10. new[i++] = 0;
  11. i = 0;
  12. while (i < 1)
  13. {
  14. new[i] = *old[i];
  15. i++;
  16. }
  17. *old = new;
  18. }
  19.  
  20. int get_next_line(const int fd, char **line)
  21. {
  22. char *read_buffer;
  23. char *line_buffer;
  24. int bytes_read;
  25. unsigned long int i;
  26.  
  27. if ((read_buffer = malloc(BUFF_SIZE)) == 0 ||
  28. (line_buffer = malloc(10)) == 0 ||
  29. (read(fd, read_buffer, 0)) < 0 ||
  30. fd < 0)
  31. return (-1);
  32. i = 0;
  33. while ((bytes_read = read(fd, read_buffer, 1)) > 0)
  34. {
  35. if (i >= sizeof(line_buffer))
  36. {
  37. my_realloc(&line_buffer);
  38. }
  39. if (*read_buffer == '\n')
  40. break ;
  41. line_buffer[i] = *read_buffer;
  42. i++;
  43. }
  44. *read_buffer = 0;
  45. *line = line_buffer;
  46. free(read_buffer);
  47. return (bytes_read || *line_buffer);
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement