main.c
1 /* ************************************************************************** */ 2 /* */ 3 /* ::: :::::::: */ 4 /* main.c :+: :+: :+: */ 5 /* +:+ +:+ +:+ */ 6 /* By: gychoi <gychoi@student.42seoul.kr> +#+ +:+ +#+ */ 7 /* +#+#+#+#+#+ +#+ */ 8 /* Created: 2022/08/18 14:32:41 by gychoi #+# #+# */ 9 /* Updated: 2022/08/24 17:12:12 by gychoi ### ########.fr */ 10 /* */ 11 /* ************************************************************************** */ 12 13 #include <stdio.h> 14 #include <fcntl.h> 15 #include "../get_next_line/get_next_line.h" 16 17 void check_leak(void) 18 { 19 // system("export MallocStackLogging=1"); 20 system("leaks --list -- app.out"); 21 } 22 23 int main(void) 24 { 25 int fd1; 26 int fd2; 27 int fd3; 28 int fd4; 29 char *ret1; 30 char *ret2; 31 char *ret3; 32 char *ret4; 33 34 fd1 = open("./test/test1.txt", O_RDONLY); 35 fd2 = open("./test/test2.txt", O_RDONLY); 36 fd3 = open("./test/test3.txt", O_RDONLY); 37 fd4 = open("./test/test4.txt", O_RDONLY); 38 printf("GNL START =========>\n"); 39 printf("\n***** TEST 1 *****\n"); 40 ret1 = get_next_line(fd1); 41 while (ret1) 42 { 43 printf("* fd1 return: %s\n", ret1); 44 printf("-----------------\n"); 45 free(ret1); 46 ret1 = get_next_line(fd1); 47 } 48 printf("\n***** TEST 2 *****\n"); 49 ret2 = get_next_line(fd2); 50 while (ret2) 51 { 52 printf("* fd2 return: %s\n", ret2); 53 printf("-----------------\n"); 54 free(ret2); 55 ret2 = get_next_line(fd2); 56 } 57 printf("\n***** TEST 3 *****\n"); 58 ret3 = get_next_line(fd3); 59 ret4 = get_next_line(fd4); 60 while (ret4) 61 { 62 printf("* fd3 return: %s\n", ret3); 63 printf("* fd4 return: %s\n", ret4); 64 printf("-----------------\n"); 65 free(ret3); 66 free(ret4); 67 printf("fd3 is closed\n"); 68 close(fd3); 69 ret3 = get_next_line(fd3); 70 ret4 = get_next_line(fd4); 71 } 72 printf("<=============== END\n"); 73 close(fd1); 74 close(fd2); 75 //close(fd3); 76 close(fd4); 77 atexit(check_leak); 78 return (0); 79 }