From 4a9ab4f9f31ff84bfcff7f70149264d82e2b2fbf Mon Sep 17 00:00:00 2001 From: NunoSempere Date: Fri, 8 Sep 2023 23:02:54 +0200 Subject: [PATCH] differentiate between file and pipe. --- makefile | 3 +++ wc | Bin 16792 -> 16912 bytes wc.c | 27 ++++++++++++++++++++------- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/makefile b/makefile index 4a0450b..4648c2c 100644 --- a/makefile +++ b/makefile @@ -28,3 +28,6 @@ build: $(SRC) format: $(SRC) $(FORMATTER) $(SRC) + +test: $(OUTPUT) + /bin/echo -e "123\n45 67" | ./$(OUTPUT) diff --git a/wc b/wc index c592776579fdb0c8b2cd48bebb8ffba937a101eb..6d987bfd8a1ec55efa9c608abba5462c27b7db52 100755 GIT binary patch delta 2435 zcmZ`*Z%k8H6u8Jsg zbdIcgzSLwNU|SZmEQ_ScqRIYrnoP+|hQ_$LYzZVY!DupJx`DyHo%`OqM7r!Y_x|oV z=XcLN@0@$zYkZK#hG;A=d&)|bR;L2lRdr^=ry0g{RWzob`NfrC(5aF^2iepWj8IkN zNHiBrorXPLrrP8F<#jT^Zj~Z0Fc$@Zp*w7#DJ3Ouxp`bENBV_#o*z+8z!chb#JMw?K46P=3t078UL( zDEn#|BDq~%7J|$c|$}SUQ?`Mm!@st@=kt9WRGODGL>mx93*lN*=q)=wSlO{o4 zn%R#Im)d+lowBm99PoBQ(=!iRH5JoEXh$!hG;_Y5QxUH{!#2PnWHfnl5~FFe#}bh7ohI z2)`rlgL=oB)t$)1q7t$#UAY)*aq7h$`$Lx7VA!!{;2O^OongdW>|yLl)bC;nt*t_Q zANw?VJiv7InbvoOt(G)lpE(_aW%kdpug92PSZ3d%*tenXI`$T{E9=JWPAs)C^*|L|bsQ>1-Hw5T#KZZ90jZhhCK8 z5G{YJ#Hzh@)IbTz#EF3KtGX1u6M8EosHTH3vAgK=7bie zQc&c+2+m50w!^H~zEnHzqEoS9LXianCb0tqF0H@!*=dyaI!ap36D)`LCT2db`aM`Od5t*zy*a#tlx_}1pA->+r*!~P=8r8I;;HmMMCN*gidTV@3 zr=FkwV{oZvz}Tj`AuwGd!Ct>;ifB2CK(F7I7t0Dbj{;hVLM?VAk!Eu)L{}fsa`u^bI_OJ-KAf}~W(&GgKNsUDVxkjTs&kx0r&<0C1@eh2^v_{c>(6pqH7BPbV*0;N}hrzkb z{NC@)n>TOX%)1?Zm7YFEM=LzzZeldq1TwcR({O&xsMDmQ&dj%=H3OW<1~~B0knd4y zQVR)lK_Nr^e2N(#f}>OvrW#G#sW?NJpkI0H0h8TBsN`xO%gMD_wjj$ESeRsPlfc`a zDA!JSKe>MR>-5ieKYe(*e6_md)b}1ZVypMM(6Jt#8UImZ8y8%#C1?+vwTn=1Z=$WR zU=!&PozoG0bOh0E1LU}JxMr^d&M~ysMmYTGjf1xwKII{l^kWWGKF6bu9MGq*S>fsX z>TOUkagv2^>1DX<*hL)>cZww}w}#;ggqx4weEp5{XG`P1%QAi^%^|ur9YiZ3N$amkz{3$9#3Ad6REt!MrA(>V9p@Ha}=zTw}L1IqAU zU23{<4AqZy1pii#ExQ(f$iMH|Ujpu;(USqYLaS^$Wb|5uy?RB{`VqSk#}J=K{0MOj zu^aLDs-}I8xQw`r*nLaWBG476Ti=QncxFP{i;Ozhh++i$_)Sfd;Z&e*{}f8BM07h+ zj$Pkt67@~Gg0*VI*Rki&W3R5;z0Um_x2wd-C5wyjdEmv8_psktfri=#9k)>oWHy!G;AINK-*DG$zK^O-=hu+ZqIlR!ff9fxqpPtQSTND{IM(|}bMQ6UrZ3o3h} zdS>)C1T&#WXc7d;PxnArdX`Rs(p(19oE;{miu{~ZLDB7MlZex`VXuuRNkowj8Eh@O z?F{e55JAv?ST0f$!8U-t=Tz4C?j_0jEEj9k%d_bFGp(d$Y&x67>wHCyGR9Wj8+$J#xmRool%iK zZH$MF@eRnK<{g-ci1b5Ph>9C7VG#%fuQXt;va`isqTYjtUlE{k>*n4uM#ou>jAx0a z*HP~#mBcNxbqsDW`(c*5UZ%f^dV%x(&;Cz6B!?H@it%TezqVDO5N@r@r&{Z|e0uwn zl+Hn}O$1k4g)q*7wD25++azI+!`#C{5A?N3e3EICFwqv{hZq}zrM6h%En06d{8 zDnl+V@jdLIJ+Ksy35OW7unEFDrNRf!O3EyS7j}ktt3XmPu~YK0YAGa`1Tf4@t_Vc!Kp?tQ&biLD*N2}w``1|b%@pf4fu*5k>-L?Xsp4{Z{bklp(>2IW|x gBD3uFlF%n>SQvc@W@fADI}AA`#$9NI8_MQ?0TlwImjD0& diff --git a/wc.c b/wc.c index a12f360..a154f59 100644 --- a/wc.c +++ b/wc.c @@ -1,10 +1,23 @@ -#include #include +#include // read, isatty -int main(){ - char buffer[1]; - while(read(0,buffer,sizeof(buffer)) > 0){ - printf("%c", buffer[0]); - } - return 0; +// STDIN_FILENO +int process_fp(FILE* fp) +{ + char buffer[1]; + while (read(0, buffer, sizeof(buffer)) > 0) { + printf("%c", buffer[0]); + } + return 0; +} + +int main(int argc, char** argv) +{ + // + if (!isatty(STDIN_FILENO)) { // check if stdin is coming from terminal or pipeline + return process_fp(STDIN_FILENO); + } else if(argc > 1){ + printf("To do"); + } + return 0; }