mygetline 实现
来源:互联网 发布:传感器 java 编辑:程序博客网 时间:2024/06/05 17:46
#include <stdio.h>#include <stdlib.h>#include <string.h>ssize_t mygetline(char **lineptr, size_t *n, FILE *stream){if(*lineptr==NULL){*n=50;*lineptr=malloc(*n);}int ch;int i=0;while(1){ch=fgetc(stream);if(ch==EOF)return -1;if(i > *n){*n+=50;*lineptr=realloc(*lineptr,*n);}*(*lineptr+i)=ch;i++;if(ch=='\n'){*(*lineptr+i)='\0';return i;}}return i;}void mygetline_free(char **lineptr){if(*lineptr != NULL){free(*linefree);}}int main(int argc,char **argv){FILE *fp;char *line = NULL;size_t line_size = 0;if(argc < 2){fprintf(stderr,"Usage...\n");exit(1);}fp = fopen(argv[1],"r");if(fp == NULL){perror("fopen()");exit(1);}while(1){if(mygetline(&line,&line_size,fp) < 0)break;printf("line_size = %d\n",line_size);printf("%d\n",strlen(line));printf("%s\n",line);}fclose(fp);mygetline_free(line);exit(0);}
阅读全文
0 0
- mygetline 实现
- 实现
- 实现
- 红黑树实现 实现代码
- java实现排列组合实现
- 实现Runnable 实现线程
- 实现ViewPager多种实现
- 双向LSTM实现实现
- 实现缓存 java实现
- 三子棋的实现的实现的实现
- 四则运算实现
- 继承实现
- 重载实现
- 实现缩略图
- split实现
- 实现缩略图
- wmi实现
- 实现缩略图
- VS2010中 C++创建DLL图解
- RecycleView调用notifyDataSetChanged在Tv端焦点丢失问题
- IntelliJ IDEA CE Maven 使用方法
- 图片验证码
- 求某列最大值数据对应的那一条数据
- mygetline 实现
- Spark获取并分析Mysql数据
- 网易笔试题-疯狂的队列
- windows下安装BeautifulSoup4
- python实现简单爬虫功能
- node.js健壮性问题及打印错误日志
- StringUtils方法全集介绍
- 新手之SSH框中strut2配置
- WKWebView 的使用