#include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4
5 #define FILE_PATH "/root/test_c/test.txt"
6 #define STRING_LENGTH (20)
7 #define BUFF_LENGTH (1024 * 1024)
8
9 int buff_handle(char *buff, int *buff_len)
10 {
11 int i = 0;
12 char *temp = NULL;
13
14 for(i = 0; i < (*buff_len); i++)
15 {
16 temp = buff + i;
17 if(0 == strcmp(temp, "\0"))
18 {
19 *buff_len = i;
20 break;
21 }
22 }
23
24 return 0;
25 }
26
27 int main()
28 {
29 char *buff = NULL;
30 FILE *fp;
31 unsigned int buff_length = 0;
32 char a[30] = {0};
33 int i = 0;
34
35 /* malloc */
36 buff = (char*)malloc(BUFF_LENGTH);
37 if(NULL == buff)
38 {
39 printf("NULL pointer find here");
40 }
41 memset(buff, 0, BUFF_LENGTH);
42
43 /* open file */
44 fp = fopen(FILE_PATH,"r");
45 if(NULL == fp)
46 {
47 printf("NULL pointer find here");
48 return;
49 }
50
51 /* read data to buff */
52 while(1)
53 {
54 fgets(a, STRING_LENGTH, fp);
55 if(feof(fp))
56 {
57 printf("finish");
58 break;
59 }
60 i = STRING_LENGTH;
61 buff_handle(a, &i);
62 memcpy(buff + buff_length, a, i);
63 buff_length += i;
64 printf("i = %d\n", i);
65 }
66 fclose(fp);
67 sprintf(buff + buff_length+1,"\0");
68 printf("%s", buff);
69 printf("finish");
70 return;
71 }