ft_getstr.c 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /* ************************************************************************** */
  2. /* */
  3. /* ::: :::::::: */
  4. /* ft_getstr.c :+: :+: :+: */
  5. /* +:+ +:+ +:+ */
  6. /* By: bchanot <bchanot@students.42.fr> +#+ +:+ +#+ */
  7. /* +#+#+#+#+#+ +#+ */
  8. /* Created: 2016/06/15 18:51:15 by bchanot #+# #+# */
  9. /* Updated: 2016/10/16 22:19:16 by bchanot ### ########.fr */
  10. /* */
  11. /* ************************************************************************** */
  12. #include "libft.h"
  13. #include <unistd.h>
  14. char *ft_getstr_fd(int fd, char x)
  15. {
  16. char c;
  17. char *str;
  18. char *tmp;
  19. str = ft_strnew(1);
  20. ft_bzero(str, 1);
  21. while (read(fd, &c, 1) != 0)
  22. {
  23. if (c == x)
  24. break ;
  25. else
  26. {
  27. tmp = ft_charjoin(str, c);
  28. ft_memdel((void **)&str);
  29. str = ft_strdup(tmp);
  30. ft_memdel((void **)&tmp);
  31. }
  32. }
  33. tmp = ft_charjoin(str, '\0');
  34. ft_memdel((void **)&str);
  35. return (tmp);
  36. }
  37. char *ft_getstr(char x)
  38. {
  39. return (ft_getstr_fd(0, x));
  40. }