customer getline function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I wrote a getBufferLine function that will read a line at a time from a
buffer. Just returns everything til it hits '\n', then will move to the
next.It works on small buffers, but seems to segfault on anything large.
Trying to figure out how pointers work in C, any pointers would help.

here is an example to use this function....
while ((c = getBufferLine(&ptr,buf,BufLen)) != NULL)
	printf("%s", c);

unsigned char* buffer_line_get(unsigned char** lineptr, unsigned char*
buffer, int size)
{
        static int index;
        unsigned char* c;

        if((size - index) == 0)
                return NULL;

        if (lineptr == NULL)
                *lineptr = c = buffer;
        else
                *lineptr = ((c = buffer) + index + 1);

        index = 0;
        while ((lineptr[index++] != '\n') && (index < size));

        lineptr+=index;
        *(buffer + index) = 0;
        return c;
}

-
To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Assembler]     [Git]     [Kernel List]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [C Programming]     [Yosemite Campsites]     [Yosemite News]     [GCC Help]

  Powered by Linux