Two named PIPEs (PIPE_in/PIPE_out) connected with `tail -f` | String sent to PIPE_in doesn't reach PIPE_out

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








1















1.Create named PIPEs, pipe_in and pipe_out by running:



$ mkfifo pipe_in
$ mkfifo pipe_out


2.Connect pipe_in to pipe_out:



TERM0: $ tail -f pipe_in > pipe_out


3.Send string hello world! to pipe_in and expect it to arrive at pipe_out:



TERM1: $ tail -f pipe_out
TERM2: $ echo "hello world!" > pipe_in


I can only see the string arriving at pipe_out if I kill command in 2..
It seems to be a buffering issue so I decided to run all commands above with stdbuf -i0 -e0 -o0 <command> but it didn't work.










share|improve this question



















  • 1





    Good point, @Jeff Schaller. I have just deleted that question. I find this one, here, more fundamental. As soon as I solve this one I will likely be able to solve the other one too.

    – fmagno
    Mar 11 at 16:41


















1















1.Create named PIPEs, pipe_in and pipe_out by running:



$ mkfifo pipe_in
$ mkfifo pipe_out


2.Connect pipe_in to pipe_out:



TERM0: $ tail -f pipe_in > pipe_out


3.Send string hello world! to pipe_in and expect it to arrive at pipe_out:



TERM1: $ tail -f pipe_out
TERM2: $ echo "hello world!" > pipe_in


I can only see the string arriving at pipe_out if I kill command in 2..
It seems to be a buffering issue so I decided to run all commands above with stdbuf -i0 -e0 -o0 <command> but it didn't work.










share|improve this question



















  • 1





    Good point, @Jeff Schaller. I have just deleted that question. I find this one, here, more fundamental. As soon as I solve this one I will likely be able to solve the other one too.

    – fmagno
    Mar 11 at 16:41














1












1








1








1.Create named PIPEs, pipe_in and pipe_out by running:



$ mkfifo pipe_in
$ mkfifo pipe_out


2.Connect pipe_in to pipe_out:



TERM0: $ tail -f pipe_in > pipe_out


3.Send string hello world! to pipe_in and expect it to arrive at pipe_out:



TERM1: $ tail -f pipe_out
TERM2: $ echo "hello world!" > pipe_in


I can only see the string arriving at pipe_out if I kill command in 2..
It seems to be a buffering issue so I decided to run all commands above with stdbuf -i0 -e0 -o0 <command> but it didn't work.










share|improve this question
















1.Create named PIPEs, pipe_in and pipe_out by running:



$ mkfifo pipe_in
$ mkfifo pipe_out


2.Connect pipe_in to pipe_out:



TERM0: $ tail -f pipe_in > pipe_out


3.Send string hello world! to pipe_in and expect it to arrive at pipe_out:



TERM1: $ tail -f pipe_out
TERM2: $ echo "hello world!" > pipe_in


I can only see the string arriving at pipe_out if I kill command in 2..
It seems to be a buffering issue so I decided to run all commands above with stdbuf -i0 -e0 -o0 <command> but it didn't work.







pipe fifo mkfifo






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 2 days ago









Rui F Ribeiro

42k1483142




42k1483142










asked Mar 11 at 16:27









fmagnofmagno

82




82







  • 1





    Good point, @Jeff Schaller. I have just deleted that question. I find this one, here, more fundamental. As soon as I solve this one I will likely be able to solve the other one too.

    – fmagno
    Mar 11 at 16:41













  • 1





    Good point, @Jeff Schaller. I have just deleted that question. I find this one, here, more fundamental. As soon as I solve this one I will likely be able to solve the other one too.

    – fmagno
    Mar 11 at 16:41








1




1





Good point, @Jeff Schaller. I have just deleted that question. I find this one, here, more fundamental. As soon as I solve this one I will likely be able to solve the other one too.

– fmagno
Mar 11 at 16:41






Good point, @Jeff Schaller. I have just deleted that question. I find this one, here, more fundamental. As soon as I solve this one I will likely be able to solve the other one too.

– fmagno
Mar 11 at 16:41











2 Answers
2






active

oldest

votes


















2














tail only outputs the last n lines of a file/stream. While you are still generating lines, it can not know which are the last n.



Have you tried something like cat?






share|improve this answer























  • It is interesting though that the tail from one pipe to the other works as expected :)

    – gmagno
    Mar 11 at 18:43



















0














Please refer to @ctrl-alt-delor's answer for the reason why it doesn't work. But you can still achieve the same purpose with cat:



enter image description here






share|improve this answer

























  • It is very interesting that it works on your setup. On my setup it doesn't. I am running this on OSX, btw - not sure if it should make any difference, though... Altough, if I replace both tail commands by cat it all works fine.

    – fmagno
    Mar 12 at 10:34












  • exactly, that is also puzzling me...

    – gmagno
    Mar 12 at 11:37











Your Answer








StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "106"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f505674%2ftwo-named-pipes-pipe-in-pipe-out-connected-with-tail-f-string-sent-to-pip%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























2 Answers
2






active

oldest

votes








2 Answers
2






active

oldest

votes









active

oldest

votes






active

oldest

votes









2














tail only outputs the last n lines of a file/stream. While you are still generating lines, it can not know which are the last n.



Have you tried something like cat?






share|improve this answer























  • It is interesting though that the tail from one pipe to the other works as expected :)

    – gmagno
    Mar 11 at 18:43
















2














tail only outputs the last n lines of a file/stream. While you are still generating lines, it can not know which are the last n.



Have you tried something like cat?






share|improve this answer























  • It is interesting though that the tail from one pipe to the other works as expected :)

    – gmagno
    Mar 11 at 18:43














2












2








2







tail only outputs the last n lines of a file/stream. While you are still generating lines, it can not know which are the last n.



Have you tried something like cat?






share|improve this answer













tail only outputs the last n lines of a file/stream. While you are still generating lines, it can not know which are the last n.



Have you tried something like cat?







share|improve this answer












share|improve this answer



share|improve this answer










answered Mar 11 at 17:03









ctrl-alt-delorctrl-alt-delor

12.4k52662




12.4k52662












  • It is interesting though that the tail from one pipe to the other works as expected :)

    – gmagno
    Mar 11 at 18:43


















  • It is interesting though that the tail from one pipe to the other works as expected :)

    – gmagno
    Mar 11 at 18:43

















It is interesting though that the tail from one pipe to the other works as expected :)

– gmagno
Mar 11 at 18:43






It is interesting though that the tail from one pipe to the other works as expected :)

– gmagno
Mar 11 at 18:43














0














Please refer to @ctrl-alt-delor's answer for the reason why it doesn't work. But you can still achieve the same purpose with cat:



enter image description here






share|improve this answer

























  • It is very interesting that it works on your setup. On my setup it doesn't. I am running this on OSX, btw - not sure if it should make any difference, though... Altough, if I replace both tail commands by cat it all works fine.

    – fmagno
    Mar 12 at 10:34












  • exactly, that is also puzzling me...

    – gmagno
    Mar 12 at 11:37















0














Please refer to @ctrl-alt-delor's answer for the reason why it doesn't work. But you can still achieve the same purpose with cat:



enter image description here






share|improve this answer

























  • It is very interesting that it works on your setup. On my setup it doesn't. I am running this on OSX, btw - not sure if it should make any difference, though... Altough, if I replace both tail commands by cat it all works fine.

    – fmagno
    Mar 12 at 10:34












  • exactly, that is also puzzling me...

    – gmagno
    Mar 12 at 11:37













0












0








0







Please refer to @ctrl-alt-delor's answer for the reason why it doesn't work. But you can still achieve the same purpose with cat:



enter image description here






share|improve this answer















Please refer to @ctrl-alt-delor's answer for the reason why it doesn't work. But you can still achieve the same purpose with cat:



enter image description here







share|improve this answer














share|improve this answer



share|improve this answer








edited Mar 11 at 18:33

























answered Mar 11 at 18:24









gmagnogmagno

1013




1013












  • It is very interesting that it works on your setup. On my setup it doesn't. I am running this on OSX, btw - not sure if it should make any difference, though... Altough, if I replace both tail commands by cat it all works fine.

    – fmagno
    Mar 12 at 10:34












  • exactly, that is also puzzling me...

    – gmagno
    Mar 12 at 11:37

















  • It is very interesting that it works on your setup. On my setup it doesn't. I am running this on OSX, btw - not sure if it should make any difference, though... Altough, if I replace both tail commands by cat it all works fine.

    – fmagno
    Mar 12 at 10:34












  • exactly, that is also puzzling me...

    – gmagno
    Mar 12 at 11:37
















It is very interesting that it works on your setup. On my setup it doesn't. I am running this on OSX, btw - not sure if it should make any difference, though... Altough, if I replace both tail commands by cat it all works fine.

– fmagno
Mar 12 at 10:34






It is very interesting that it works on your setup. On my setup it doesn't. I am running this on OSX, btw - not sure if it should make any difference, though... Altough, if I replace both tail commands by cat it all works fine.

– fmagno
Mar 12 at 10:34














exactly, that is also puzzling me...

– gmagno
Mar 12 at 11:37





exactly, that is also puzzling me...

– gmagno
Mar 12 at 11:37

















draft saved

draft discarded
















































Thanks for contributing an answer to Unix & Linux Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f505674%2ftwo-named-pipes-pipe-in-pipe-out-connected-with-tail-f-string-sent-to-pip%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown






Popular posts from this blog

How to check contact read email or not when send email to Individual?

Displaying single band from multi-band raster using QGIS

How many registers does an x86_64 CPU actually have?