From 832756e2ce59b6948702edaed8cc62b480d5c408 Mon Sep 17 00:00:00 2001 From: Hugo LAMY Date: Tue, 25 Feb 2020 20:48:57 +0100 Subject: [PATCH] problem avec les redirections de output --- ft_printf | Bin 49260 -> 49916 bytes ft_printf.h | 2 +- main.c | 106 +++++++++++++++++++++++++++++++++++++++------------- out.txt | 2 - out1.txt | 2 + out2.txt | 2 + outf.txt | 26 +++++++++++++ outft.txt | 0 test.c | 54 ++++++++++++++++++++++++++ 9 files changed, 165 insertions(+), 29 deletions(-) delete mode 100644 out.txt create mode 100644 out1.txt create mode 100644 out2.txt create mode 100644 outf.txt create mode 100644 outft.txt create mode 100644 test.c diff --git a/ft_printf b/ft_printf index 2b955139e672c79862d3838aa1e15b05bcdda000..03f78729b0e97ba4360c8e101d7c898a4647d929 100755 GIT binary patch literal 49916 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 literal 49260 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 Ay#N3J diff --git a/ft_printf.h b/ft_printf.h index a377388..9963abd 100644 --- a/ft_printf.h +++ b/ft_printf.h @@ -3,7 +3,7 @@ # include # include # include -# include "libft/libft.h" +# include "libft/includes/libft.h" # include diff --git a/main.c b/main.c index 6747513..99e0af1 100644 --- a/main.c +++ b/main.c @@ -1,6 +1,7 @@ #include "ft_printf.h" #include // for printf #include +#include // for dup() and dup2() // macro to print : @@ -8,10 +9,70 @@ // then the result of real printf, // then the result of ft_printf, // and finally redirect the output into a file to compare -#define PRINT(string, args...) printf("(%s, %s)", #string, #args); \ - printf("%*s", (int)(40 - ft_strlen(#string) - ft_strlen(#args)), ": "); \ - printf("'" string "'\n", args); \ - ft_printf("%45s" string "'\n\n", ": '", args); + +//#define PRINT(string, args...) \ +// printf("(%s, %s)", #string, #args); \ +// printf("%*s", (int)(40 - ft_strlen(#string) - ft_strlen(#args)), ": "); \ +// printf("'" string "'\n", ##args); \ +// ft_printf("%45s" string "'\n\n", ": '", ##args); \ +// dup2(outf, 1); \ +// printf(string "\n", ##args); \ +// dup2(outft, 1); \ +// ft_printf(string "\n", ##args); \ +// dup2(save, 1); \ +// ft_compare(outf, outft); + +#define PRINT(string, args...) \ + printf("zero"); \ + write(1, "\n", 1); \ + dup2(outf, 1); \ + write(1, "\n", 1); \ + dup2(save, 1); + // printf("un\n"); \ + dup2(outft, 1); \ + ft_printf("deux\n"); \ + dup2(save, 1); \ + printf("trois"); + + // #include + // ft_printf("Hi file\n"); + // int out = open("out.txt", O_WRONLY); + // int save = dup(1); + // dup2(out, 1); + // ft_printf("Ho fole\n"); + // dup2(save, 1); + // ft_printf("Ha fale\n"); + // dup2(out, 1); + // ft_printf("Hu fule\n"); + // dup2(save, 1); + // ft_printf("He fele\n"); + // close(save); + // close(out); + +char *ft_compare(int fd1, int fd2) +{ + int ret1 = 1; + int ret2 = 1; + char *line1 = NULL; + char *line2 = NULL; + + while (ret1 > 0 && ret2 > 0) + { + if ((ret1 = get_next_line(fd1, &line1)) > 0) + { + if ((ret2 = get_next_line(fd2, &line2)) > 0) + { + if (ft_strcmp(line1, line2) == 0) + return ("JACKPOT"); + else + return ("HO HO.."); + } + } + } + if (ret1 == ret2) + return ("JACKPOT"); + return ("HO HO.."); +} int ft_printf_test(char *string, ...) { @@ -55,6 +116,10 @@ int ft_printf_test(char *string, ...) int main(int ac, char **av) { + int outf = open("outf.txt", O_WRONLY); + int outft = open("outft.txt", O_WRONLY); + int save = dup(1); + /* ////////////////////////////////////////////////////////////////// */ /* PREMISES TESTS WITH AV_ARG BASED ON MAN EXEMPLE */ /* ////////////////////////////////////////////////////////////////// */ @@ -97,8 +162,9 @@ int main(int ac, char **av) if (ac == 2 && !strcmp(av[1], "test")) { - long int k = -23; + PRINT("sdf"); PRINT("%i", 23); + long int k = -23; PRINT("%li", k); PRINT("%i", -32); PRINT("%li", 9223372036854775807); @@ -112,9 +178,9 @@ int main(int ac, char **av) PRINT("%.2i", 122); PRINT("%.25i", 123); PRINT("%0.6i", 124); - PRINT("%-032.6i", 125); - PRINT("%0-032.6i", 126); - PRINT("%0-0.6i", 127); +// PRINT("%-032.6i", 125); +// PRINT("%0-032.6i", 126); +// PRINT("%0-0.6i", 127); PRINT("%s", "string"); PRINT("%.7s", "strong"); PRINT("%.2s", "strung"); @@ -125,25 +191,10 @@ int main(int ac, char **av) PRINT("%0i", -129); PRINT("%10i", -130); PRINT("%*i", 0,-131); - PRINT("%0s", "stryng"); +// PRINT("%0s", "stryng"); PRINT("%10s", "strxng"); - PRINT("%010s", "strzng"); - PRINT("%010s" "__TEST__", "strzng"); - - // #include - // ft_printf("Hi file\n"); - // int out = open("out.txt", O_WRONLY); - // int save = dup(1); - // dup2(out, 1); - // ft_printf("Ho fole\n"); - // dup2(save, 1); - // ft_printf("Ha fale\n"); - // dup2(out, 1); - // ft_printf("Hu fule\n"); - // dup2(save, 1); - // ft_printf("He fele\n"); - // close(save); - // close(out); +// PRINT("%010s", "strzng"); +// PRINT("%010s" "__TEST__", "strzng"); } @@ -709,6 +760,9 @@ int main(int ac, char **av) /* 557gk */ /* ////////////////////////////////////////////////////////////////// */ + close(save); + close(outf); + close(outft); return (0); } diff --git a/out.txt b/out.txt deleted file mode 100644 index 4444a8e..0000000 --- a/out.txt +++ /dev/null @@ -1,2 +0,0 @@ -Ho fole -Hu fule diff --git a/out1.txt b/out1.txt new file mode 100644 index 0000000..4f03677 --- /dev/null +++ b/out1.txt @@ -0,0 +1,2 @@ +printf :test1 +printf :test2 diff --git a/out2.txt b/out2.txt new file mode 100644 index 0000000..11afd15 --- /dev/null +++ b/out2.txt @@ -0,0 +1,2 @@ +printf2:test1 +printf2:test2 diff --git a/outf.txt b/outf.txt new file mode 100644 index 0000000..5a7139b --- /dev/null +++ b/outf.txt @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/outft.txt b/outft.txt new file mode 100644 index 0000000..e69de29 diff --git a/test.c b/test.c new file mode 100644 index 0000000..24d6f9b --- /dev/null +++ b/test.c @@ -0,0 +1,54 @@ +#include "ft_printf.h" +#include // for printf +#include // for dup() and dup2() + +//#define PRINT(string) \ +// dup2(out1, 1); \ +// ft_printf(string "\n"); \ +// dup2(out2, 1); \ +// ft_printf(string "\n"); \ +// dup2(save, 1); \ +// ft_printf(string "\n"); \ +// ft_printf(string "\n\n"); + +#define PRINT(string) \ + dup2(out1, 1); \ + write(1, "printf :" string "\n", 14); \ + dup2(out2, 1); \ + write(1, "printf2:" string "\n", 14); \ + dup2(save, 1); \ + write(1, "printf :" string "\n", 14); \ + write(1, "printf2:" string "\n\n", 15); \ + +//#define PRINT(string) \ +// dup2(out1, 1); \ +// printf("printf :" string "\n"); \ +// dup2(out2, 1); \ +// ft_printf("printf2:" string "\n"); \ +// dup2(save, 1); \ +// printf("printf :" string "\n"); \ +// ft_printf("printf2:" string "\n\n"); + +//#define PRINT(string) \ +// printf("printf :" string "\n"); \ +// ft_printf("printf2:" string "\n\n"); \ +// dup2(out1, 1); \ +// printf("printf :" string "\n"); \ +// dup2(out2, 1); \ +// ft_printf("printf2:" string "\n"); \ +// dup2(save, 1); + +int main(void) +{ + int out1 = open("out1.txt", O_WRONLY | O_TRUNC); + int out2 = open("out2.txt", O_WRONLY | O_TRUNC); + int save = dup(1); + + PRINT("test1"); + PRINT("test2"); + + close(out1); + close(out2); + close(save); + return (0); +}