Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <unistd.h>
- #include <stdlib.h>
- #include <string.h>
- #include <fcntl.h>
- #define BUFFER_SIZE 65536
- char *ft_read(int filedes)
- {
- char *str;
- char buffer[BUFFER_SIZE];
- int input_size;
- int str_size;
- int done;
- done = 0;
- str = (char *)malloc(sizeof(char));
- if (!str)
- return (NULL);
- *str = '\0';
- str_size = 0;
- while (!done && (input_size = read(filedes, buffer, sizeof(buffer) - 1)) > 0)
- {
- // if stdin stop at newline
- if (filedes == 0 && buffer[input_size-1] == '\n')
- done = 1;
- buffer[input_size] = '\0';
- str = realloc(str, str_size + input_size + 1);
- if (!str)
- return (NULL);
- str = strncat(str, buffer, input_size);
- str_size += input_size;
- }
- if (input_size < 0)
- {
- free(str);
- return (NULL);
- }
- return (str);
- }
- // return number of character in current line starting from cursor
- int ft_linelen(char *cursor)
- {
- char *i;
- /*circlejerk carrousell*/
- i = cursor;
- while (*i && *i != '\n')
- i++;
- return ((int)(i - cursor));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement