getline函数可以获取文件中的一行数据。
原函数形式为
ssize_t getline(char **linepter,size_t *n,FILE *stream)
返回类型ssize_t为有符号整形,其值为获取的字符数,文件结束则返回-1,包括换行符’\n’,但不包括字符串结束符’\0’。linepter用来存储获得的字符串,size_t为无符号整形表示linepter的字节数。当*linepter为空时函数则动态为其分配空间,注意要将size_t值赋0。当linepter的空间不足时,函数会通过realloc,重新分配更大的空间。stream为文件指针,用于读取文件。
在了解了系统的getline函数后,根据其功能自己进行了实现。
ssize_t mygetline(char** line,size_t *n,FILE *fp)
{
char *buf = *line;
ssize_t c,i=0;//i来记录字符串长度,c来存储字符
if(buf==NULL||*n==0)
{