How does xargs know when a stdin input ends, so that it can start processing it?











up vote
3
down vote

favorite
1












After reading Stephen Kitt's reply, xargs waits for receiving the stdin input before processing any of the input, such as splitting it into arguments.



How does xargs know when a stdin input ends, so that it can start processing it?



Is -E used for specifying the end of a stdin input?



Without it, how does xargs knows when it ends? Is there some timeout?










share|improve this question







New contributor




Ben is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
























    up vote
    3
    down vote

    favorite
    1












    After reading Stephen Kitt's reply, xargs waits for receiving the stdin input before processing any of the input, such as splitting it into arguments.



    How does xargs know when a stdin input ends, so that it can start processing it?



    Is -E used for specifying the end of a stdin input?



    Without it, how does xargs knows when it ends? Is there some timeout?










    share|improve this question







    New contributor




    Ben is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.






















      up vote
      3
      down vote

      favorite
      1









      up vote
      3
      down vote

      favorite
      1






      1





      After reading Stephen Kitt's reply, xargs waits for receiving the stdin input before processing any of the input, such as splitting it into arguments.



      How does xargs know when a stdin input ends, so that it can start processing it?



      Is -E used for specifying the end of a stdin input?



      Without it, how does xargs knows when it ends? Is there some timeout?










      share|improve this question







      New contributor




      Ben is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      After reading Stephen Kitt's reply, xargs waits for receiving the stdin input before processing any of the input, such as splitting it into arguments.



      How does xargs know when a stdin input ends, so that it can start processing it?



      Is -E used for specifying the end of a stdin input?



      Without it, how does xargs knows when it ends? Is there some timeout?







      xargs






      share|improve this question







      New contributor




      Ben is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      share|improve this question







      New contributor




      Ben is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      share|improve this question




      share|improve this question






      New contributor




      Ben is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked 2 hours ago









      Ben

      2538




      2538




      New contributor




      Ben is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      Ben is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      Ben is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






















          1 Answer
          1






          active

          oldest

          votes

















          up vote
          6
          down vote













          In the absence of an -E option, which specifies an explicit end-of-file marker, xargs knows it’s exhausted its standard input (or any input specified by the -a option) when read() returns 0.



          You can see this in action by running



          printf '%s ' {1..1024} | strace -e read xargs -s 2048 -x





          share|improve this answer























            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',
            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
            });


            }
            });






            Ben is a new contributor. Be nice, and check out our Code of Conduct.










             

            draft saved


            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f483939%2fhow-does-xargs-know-when-a-stdin-input-ends-so-that-it-can-start-processing-it%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            6
            down vote













            In the absence of an -E option, which specifies an explicit end-of-file marker, xargs knows it’s exhausted its standard input (or any input specified by the -a option) when read() returns 0.



            You can see this in action by running



            printf '%s ' {1..1024} | strace -e read xargs -s 2048 -x





            share|improve this answer



























              up vote
              6
              down vote













              In the absence of an -E option, which specifies an explicit end-of-file marker, xargs knows it’s exhausted its standard input (or any input specified by the -a option) when read() returns 0.



              You can see this in action by running



              printf '%s ' {1..1024} | strace -e read xargs -s 2048 -x





              share|improve this answer

























                up vote
                6
                down vote










                up vote
                6
                down vote









                In the absence of an -E option, which specifies an explicit end-of-file marker, xargs knows it’s exhausted its standard input (or any input specified by the -a option) when read() returns 0.



                You can see this in action by running



                printf '%s ' {1..1024} | strace -e read xargs -s 2048 -x





                share|improve this answer














                In the absence of an -E option, which specifies an explicit end-of-file marker, xargs knows it’s exhausted its standard input (or any input specified by the -a option) when read() returns 0.



                You can see this in action by running



                printf '%s ' {1..1024} | strace -e read xargs -s 2048 -x






                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited 1 hour ago

























                answered 1 hour ago









                Stephen Kitt

                157k23343419




                157k23343419






















                    Ben is a new contributor. Be nice, and check out our Code of Conduct.










                     

                    draft saved


                    draft discarded


















                    Ben is a new contributor. Be nice, and check out our Code of Conduct.













                    Ben is a new contributor. Be nice, and check out our Code of Conduct.












                    Ben is a new contributor. Be nice, and check out our Code of Conduct.















                     


                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f483939%2fhow-does-xargs-know-when-a-stdin-input-ends-so-that-it-can-start-processing-it%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

                    404 Error Contact Form 7 ajax form submitting

                    How to know if a Active Directory user can login interactively

                    Refactoring coordinates for Minecraft Pi buildings written in Python