Writing to stdin of a process

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











up vote
8
down vote

favorite
3












As far as I understand if i type the following...



 python -i


... the python-interpreter will now read from stdin, behaving (obviously) like this:



 >>> print "Hello"
Hello


I would expect it to do the same thing if I do this:



 echo 'print "Hello"' > /proc/$(pidof python)/fd/0


But this is the output ( beeing an actual empty line):



 >>> print "Hello"
<empyline>


This to me looks like, it just took the print "Hello"n and wrote it to stdout, yet did not interpret it. Why is that not working and what would I have to do to make it working?










share|improve this question























  • The TIOCSTI ioctl can write to a terminal's stdin as if the data has been entered from the keyboard. For example github.com/thrig/scripts/blob/master/tty/ttywrite.c
    – roaima
    Aug 13 '17 at 6:00














up vote
8
down vote

favorite
3












As far as I understand if i type the following...



 python -i


... the python-interpreter will now read from stdin, behaving (obviously) like this:



 >>> print "Hello"
Hello


I would expect it to do the same thing if I do this:



 echo 'print "Hello"' > /proc/$(pidof python)/fd/0


But this is the output ( beeing an actual empty line):



 >>> print "Hello"
<empyline>


This to me looks like, it just took the print "Hello"n and wrote it to stdout, yet did not interpret it. Why is that not working and what would I have to do to make it working?










share|improve this question























  • The TIOCSTI ioctl can write to a terminal's stdin as if the data has been entered from the keyboard. For example github.com/thrig/scripts/blob/master/tty/ttywrite.c
    – roaima
    Aug 13 '17 at 6:00












up vote
8
down vote

favorite
3









up vote
8
down vote

favorite
3






3





As far as I understand if i type the following...



 python -i


... the python-interpreter will now read from stdin, behaving (obviously) like this:



 >>> print "Hello"
Hello


I would expect it to do the same thing if I do this:



 echo 'print "Hello"' > /proc/$(pidof python)/fd/0


But this is the output ( beeing an actual empty line):



 >>> print "Hello"
<empyline>


This to me looks like, it just took the print "Hello"n and wrote it to stdout, yet did not interpret it. Why is that not working and what would I have to do to make it working?










share|improve this question















As far as I understand if i type the following...



 python -i


... the python-interpreter will now read from stdin, behaving (obviously) like this:



 >>> print "Hello"
Hello


I would expect it to do the same thing if I do this:



 echo 'print "Hello"' > /proc/$(pidof python)/fd/0


But this is the output ( beeing an actual empty line):



 >>> print "Hello"
<empyline>


This to me looks like, it just took the print "Hello"n and wrote it to stdout, yet did not interpret it. Why is that not working and what would I have to do to make it working?







proc file-descriptors






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 24 at 15:19









Filipe Brandenburger

6,6701732




6,6701732










asked Aug 13 '17 at 4:33









Sheppy

5317




5317











  • The TIOCSTI ioctl can write to a terminal's stdin as if the data has been entered from the keyboard. For example github.com/thrig/scripts/blob/master/tty/ttywrite.c
    – roaima
    Aug 13 '17 at 6:00
















  • The TIOCSTI ioctl can write to a terminal's stdin as if the data has been entered from the keyboard. For example github.com/thrig/scripts/blob/master/tty/ttywrite.c
    – roaima
    Aug 13 '17 at 6:00















The TIOCSTI ioctl can write to a terminal's stdin as if the data has been entered from the keyboard. For example github.com/thrig/scripts/blob/master/tty/ttywrite.c
– roaima
Aug 13 '17 at 6:00




The TIOCSTI ioctl can write to a terminal's stdin as if the data has been entered from the keyboard. For example github.com/thrig/scripts/blob/master/tty/ttywrite.c
– roaima
Aug 13 '17 at 6:00










2 Answers
2






active

oldest

votes

















up vote
6
down vote



accepted










Sending input to shells/interpreters in this way is very problem-prone and very difficult to get working in any reliable way.



The proper way is to use sockets, this is why they were invented, you can do this in command line using ncat nc or socat to bind a python process to a simple socket. Or write a simple python application that binds to port and listens for commands to interpret on a socket.



sockets can be local and not exposed to any web interface.




The problem is that if you start python from the command line, it is typically attached to your shell which is attached to a terminal, in fact we can see



$ ls -al /proc/PID/fd
lrwxrwxrwx 1 USER GROUP 0 Aug 1 00:00 0 -> /dev/pty1


so when you write to stdin of python, you are actually writing to the pty psuedo-terminal, which is a kernel device, not a simple file. It uses ioctl not read and write, so you will see output on your screen, but it will not be sent to the spawned process (python)



One way to replicate what you are trying is with a fifo or named pipe.



# make pipe
$ mkfifo python_i.pipe
# start python interactive with pipe input
# Will print to pty output unless redirected
$ python -i < python_i.pipe &
# keep pipe open
$ sleep infinity > python_i.pipe &
# interact with the interpreter
$ echo "print "hello"" >> python_i.pipe


You can also use screen for input only



# start screen 
$ screen -dmS python python
# send command to input
$ screen -S python -X 'print "hello"'
# view output
$ screen -S python -x





share|improve this answer






















  • If you hold the pipe open (eg sleep 300 > python_i.pipe &) the other side won't close and python will continue to accept commands down the pipe. There is no EOF as such sent by echo.
    – roaima
    Aug 13 '17 at 5:54











  • @roaima you are right, I was mistaken in my understanding that echo sends the EOF when it closes the stream. This is not avoidable with | pipes, however , correct?
    – crasic
    Aug 13 '17 at 5:56










  • I was already down the fifo road, but echo something > fifo would cause it to get an EOF which would stop many applications. The sleep infinity > fifo workaround didn't cross my mid though, thank you!
    – Sheppy
    Aug 13 '17 at 6:00










  • actually continuing your idea, you can also do python -i <> fifo which will also prevent the EOF
    – Sheppy
    Aug 13 '17 at 6:45

















up vote
7
down vote













Accessing /proc/PID/fd/0 doesn't access file descriptor 0 of process PID, it accesses the file which PID has open on file descriptor 0. This is a subtle distinction, but it matters. A file descriptor is a connection that a process has to a file. Writing to a file descriptor writes to the file regardless of how the file has been opened.



If /proc/PID/fd/0 is a regular file, writing to it modifies the file. The data isn't necessarily what the process will read next: it depends on the position attached to the file descriptor that the process is using to read the file. When a process opens /proc/PID/fd/0, it gets the same file as the other process, but the file positions are independent.



If /proc/PID/fd/0 is a pipe, then writing to it appends the data to the pipe's buffer. In that case, the process that's reading from the pipe will read the data.



If /proc/PID/fd/0 is a terminal, then writing to it outputs the data on a terminal. A terminal file is bidirectional: writing to it outputs the data, i.e. the terminal displays the text; reading from a terminal inputs the data, i.e. the terminal transmits user input.



Python is both reading and writing to the terminal. When you run echo 'print "Hello"' > /proc/$(pidof python)/fd/0, you're writing print "Hello" to the terminal. The terminal displays print "Hello" as instructed. The python process doesn't see anything, it's still waiting for input.



If you want to feed input to the Python process, you have to get the terminal to do it. See crasic's answer for ways to do that.






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
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f385771%2fwriting-to-stdin-of-a-process%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








    up vote
    6
    down vote



    accepted










    Sending input to shells/interpreters in this way is very problem-prone and very difficult to get working in any reliable way.



    The proper way is to use sockets, this is why they were invented, you can do this in command line using ncat nc or socat to bind a python process to a simple socket. Or write a simple python application that binds to port and listens for commands to interpret on a socket.



    sockets can be local and not exposed to any web interface.




    The problem is that if you start python from the command line, it is typically attached to your shell which is attached to a terminal, in fact we can see



    $ ls -al /proc/PID/fd
    lrwxrwxrwx 1 USER GROUP 0 Aug 1 00:00 0 -> /dev/pty1


    so when you write to stdin of python, you are actually writing to the pty psuedo-terminal, which is a kernel device, not a simple file. It uses ioctl not read and write, so you will see output on your screen, but it will not be sent to the spawned process (python)



    One way to replicate what you are trying is with a fifo or named pipe.



    # make pipe
    $ mkfifo python_i.pipe
    # start python interactive with pipe input
    # Will print to pty output unless redirected
    $ python -i < python_i.pipe &
    # keep pipe open
    $ sleep infinity > python_i.pipe &
    # interact with the interpreter
    $ echo "print "hello"" >> python_i.pipe


    You can also use screen for input only



    # start screen 
    $ screen -dmS python python
    # send command to input
    $ screen -S python -X 'print "hello"'
    # view output
    $ screen -S python -x





    share|improve this answer






















    • If you hold the pipe open (eg sleep 300 > python_i.pipe &) the other side won't close and python will continue to accept commands down the pipe. There is no EOF as such sent by echo.
      – roaima
      Aug 13 '17 at 5:54











    • @roaima you are right, I was mistaken in my understanding that echo sends the EOF when it closes the stream. This is not avoidable with | pipes, however , correct?
      – crasic
      Aug 13 '17 at 5:56










    • I was already down the fifo road, but echo something > fifo would cause it to get an EOF which would stop many applications. The sleep infinity > fifo workaround didn't cross my mid though, thank you!
      – Sheppy
      Aug 13 '17 at 6:00










    • actually continuing your idea, you can also do python -i <> fifo which will also prevent the EOF
      – Sheppy
      Aug 13 '17 at 6:45














    up vote
    6
    down vote



    accepted










    Sending input to shells/interpreters in this way is very problem-prone and very difficult to get working in any reliable way.



    The proper way is to use sockets, this is why they were invented, you can do this in command line using ncat nc or socat to bind a python process to a simple socket. Or write a simple python application that binds to port and listens for commands to interpret on a socket.



    sockets can be local and not exposed to any web interface.




    The problem is that if you start python from the command line, it is typically attached to your shell which is attached to a terminal, in fact we can see



    $ ls -al /proc/PID/fd
    lrwxrwxrwx 1 USER GROUP 0 Aug 1 00:00 0 -> /dev/pty1


    so when you write to stdin of python, you are actually writing to the pty psuedo-terminal, which is a kernel device, not a simple file. It uses ioctl not read and write, so you will see output on your screen, but it will not be sent to the spawned process (python)



    One way to replicate what you are trying is with a fifo or named pipe.



    # make pipe
    $ mkfifo python_i.pipe
    # start python interactive with pipe input
    # Will print to pty output unless redirected
    $ python -i < python_i.pipe &
    # keep pipe open
    $ sleep infinity > python_i.pipe &
    # interact with the interpreter
    $ echo "print "hello"" >> python_i.pipe


    You can also use screen for input only



    # start screen 
    $ screen -dmS python python
    # send command to input
    $ screen -S python -X 'print "hello"'
    # view output
    $ screen -S python -x





    share|improve this answer






















    • If you hold the pipe open (eg sleep 300 > python_i.pipe &) the other side won't close and python will continue to accept commands down the pipe. There is no EOF as such sent by echo.
      – roaima
      Aug 13 '17 at 5:54











    • @roaima you are right, I was mistaken in my understanding that echo sends the EOF when it closes the stream. This is not avoidable with | pipes, however , correct?
      – crasic
      Aug 13 '17 at 5:56










    • I was already down the fifo road, but echo something > fifo would cause it to get an EOF which would stop many applications. The sleep infinity > fifo workaround didn't cross my mid though, thank you!
      – Sheppy
      Aug 13 '17 at 6:00










    • actually continuing your idea, you can also do python -i <> fifo which will also prevent the EOF
      – Sheppy
      Aug 13 '17 at 6:45












    up vote
    6
    down vote



    accepted







    up vote
    6
    down vote



    accepted






    Sending input to shells/interpreters in this way is very problem-prone and very difficult to get working in any reliable way.



    The proper way is to use sockets, this is why they were invented, you can do this in command line using ncat nc or socat to bind a python process to a simple socket. Or write a simple python application that binds to port and listens for commands to interpret on a socket.



    sockets can be local and not exposed to any web interface.




    The problem is that if you start python from the command line, it is typically attached to your shell which is attached to a terminal, in fact we can see



    $ ls -al /proc/PID/fd
    lrwxrwxrwx 1 USER GROUP 0 Aug 1 00:00 0 -> /dev/pty1


    so when you write to stdin of python, you are actually writing to the pty psuedo-terminal, which is a kernel device, not a simple file. It uses ioctl not read and write, so you will see output on your screen, but it will not be sent to the spawned process (python)



    One way to replicate what you are trying is with a fifo or named pipe.



    # make pipe
    $ mkfifo python_i.pipe
    # start python interactive with pipe input
    # Will print to pty output unless redirected
    $ python -i < python_i.pipe &
    # keep pipe open
    $ sleep infinity > python_i.pipe &
    # interact with the interpreter
    $ echo "print "hello"" >> python_i.pipe


    You can also use screen for input only



    # start screen 
    $ screen -dmS python python
    # send command to input
    $ screen -S python -X 'print "hello"'
    # view output
    $ screen -S python -x





    share|improve this answer














    Sending input to shells/interpreters in this way is very problem-prone and very difficult to get working in any reliable way.



    The proper way is to use sockets, this is why they were invented, you can do this in command line using ncat nc or socat to bind a python process to a simple socket. Or write a simple python application that binds to port and listens for commands to interpret on a socket.



    sockets can be local and not exposed to any web interface.




    The problem is that if you start python from the command line, it is typically attached to your shell which is attached to a terminal, in fact we can see



    $ ls -al /proc/PID/fd
    lrwxrwxrwx 1 USER GROUP 0 Aug 1 00:00 0 -> /dev/pty1


    so when you write to stdin of python, you are actually writing to the pty psuedo-terminal, which is a kernel device, not a simple file. It uses ioctl not read and write, so you will see output on your screen, but it will not be sent to the spawned process (python)



    One way to replicate what you are trying is with a fifo or named pipe.



    # make pipe
    $ mkfifo python_i.pipe
    # start python interactive with pipe input
    # Will print to pty output unless redirected
    $ python -i < python_i.pipe &
    # keep pipe open
    $ sleep infinity > python_i.pipe &
    # interact with the interpreter
    $ echo "print "hello"" >> python_i.pipe


    You can also use screen for input only



    # start screen 
    $ screen -dmS python python
    # send command to input
    $ screen -S python -X 'print "hello"'
    # view output
    $ screen -S python -x






    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited Aug 13 '17 at 6:04

























    answered Aug 13 '17 at 5:36









    crasic

    30628




    30628











    • If you hold the pipe open (eg sleep 300 > python_i.pipe &) the other side won't close and python will continue to accept commands down the pipe. There is no EOF as such sent by echo.
      – roaima
      Aug 13 '17 at 5:54











    • @roaima you are right, I was mistaken in my understanding that echo sends the EOF when it closes the stream. This is not avoidable with | pipes, however , correct?
      – crasic
      Aug 13 '17 at 5:56










    • I was already down the fifo road, but echo something > fifo would cause it to get an EOF which would stop many applications. The sleep infinity > fifo workaround didn't cross my mid though, thank you!
      – Sheppy
      Aug 13 '17 at 6:00










    • actually continuing your idea, you can also do python -i <> fifo which will also prevent the EOF
      – Sheppy
      Aug 13 '17 at 6:45
















    • If you hold the pipe open (eg sleep 300 > python_i.pipe &) the other side won't close and python will continue to accept commands down the pipe. There is no EOF as such sent by echo.
      – roaima
      Aug 13 '17 at 5:54











    • @roaima you are right, I was mistaken in my understanding that echo sends the EOF when it closes the stream. This is not avoidable with | pipes, however , correct?
      – crasic
      Aug 13 '17 at 5:56










    • I was already down the fifo road, but echo something > fifo would cause it to get an EOF which would stop many applications. The sleep infinity > fifo workaround didn't cross my mid though, thank you!
      – Sheppy
      Aug 13 '17 at 6:00










    • actually continuing your idea, you can also do python -i <> fifo which will also prevent the EOF
      – Sheppy
      Aug 13 '17 at 6:45















    If you hold the pipe open (eg sleep 300 > python_i.pipe &) the other side won't close and python will continue to accept commands down the pipe. There is no EOF as such sent by echo.
    – roaima
    Aug 13 '17 at 5:54





    If you hold the pipe open (eg sleep 300 > python_i.pipe &) the other side won't close and python will continue to accept commands down the pipe. There is no EOF as such sent by echo.
    – roaima
    Aug 13 '17 at 5:54













    @roaima you are right, I was mistaken in my understanding that echo sends the EOF when it closes the stream. This is not avoidable with | pipes, however , correct?
    – crasic
    Aug 13 '17 at 5:56




    @roaima you are right, I was mistaken in my understanding that echo sends the EOF when it closes the stream. This is not avoidable with | pipes, however , correct?
    – crasic
    Aug 13 '17 at 5:56












    I was already down the fifo road, but echo something > fifo would cause it to get an EOF which would stop many applications. The sleep infinity > fifo workaround didn't cross my mid though, thank you!
    – Sheppy
    Aug 13 '17 at 6:00




    I was already down the fifo road, but echo something > fifo would cause it to get an EOF which would stop many applications. The sleep infinity > fifo workaround didn't cross my mid though, thank you!
    – Sheppy
    Aug 13 '17 at 6:00












    actually continuing your idea, you can also do python -i <> fifo which will also prevent the EOF
    – Sheppy
    Aug 13 '17 at 6:45




    actually continuing your idea, you can also do python -i <> fifo which will also prevent the EOF
    – Sheppy
    Aug 13 '17 at 6:45












    up vote
    7
    down vote













    Accessing /proc/PID/fd/0 doesn't access file descriptor 0 of process PID, it accesses the file which PID has open on file descriptor 0. This is a subtle distinction, but it matters. A file descriptor is a connection that a process has to a file. Writing to a file descriptor writes to the file regardless of how the file has been opened.



    If /proc/PID/fd/0 is a regular file, writing to it modifies the file. The data isn't necessarily what the process will read next: it depends on the position attached to the file descriptor that the process is using to read the file. When a process opens /proc/PID/fd/0, it gets the same file as the other process, but the file positions are independent.



    If /proc/PID/fd/0 is a pipe, then writing to it appends the data to the pipe's buffer. In that case, the process that's reading from the pipe will read the data.



    If /proc/PID/fd/0 is a terminal, then writing to it outputs the data on a terminal. A terminal file is bidirectional: writing to it outputs the data, i.e. the terminal displays the text; reading from a terminal inputs the data, i.e. the terminal transmits user input.



    Python is both reading and writing to the terminal. When you run echo 'print "Hello"' > /proc/$(pidof python)/fd/0, you're writing print "Hello" to the terminal. The terminal displays print "Hello" as instructed. The python process doesn't see anything, it's still waiting for input.



    If you want to feed input to the Python process, you have to get the terminal to do it. See crasic's answer for ways to do that.






    share|improve this answer
























      up vote
      7
      down vote













      Accessing /proc/PID/fd/0 doesn't access file descriptor 0 of process PID, it accesses the file which PID has open on file descriptor 0. This is a subtle distinction, but it matters. A file descriptor is a connection that a process has to a file. Writing to a file descriptor writes to the file regardless of how the file has been opened.



      If /proc/PID/fd/0 is a regular file, writing to it modifies the file. The data isn't necessarily what the process will read next: it depends on the position attached to the file descriptor that the process is using to read the file. When a process opens /proc/PID/fd/0, it gets the same file as the other process, but the file positions are independent.



      If /proc/PID/fd/0 is a pipe, then writing to it appends the data to the pipe's buffer. In that case, the process that's reading from the pipe will read the data.



      If /proc/PID/fd/0 is a terminal, then writing to it outputs the data on a terminal. A terminal file is bidirectional: writing to it outputs the data, i.e. the terminal displays the text; reading from a terminal inputs the data, i.e. the terminal transmits user input.



      Python is both reading and writing to the terminal. When you run echo 'print "Hello"' > /proc/$(pidof python)/fd/0, you're writing print "Hello" to the terminal. The terminal displays print "Hello" as instructed. The python process doesn't see anything, it's still waiting for input.



      If you want to feed input to the Python process, you have to get the terminal to do it. See crasic's answer for ways to do that.






      share|improve this answer






















        up vote
        7
        down vote










        up vote
        7
        down vote









        Accessing /proc/PID/fd/0 doesn't access file descriptor 0 of process PID, it accesses the file which PID has open on file descriptor 0. This is a subtle distinction, but it matters. A file descriptor is a connection that a process has to a file. Writing to a file descriptor writes to the file regardless of how the file has been opened.



        If /proc/PID/fd/0 is a regular file, writing to it modifies the file. The data isn't necessarily what the process will read next: it depends on the position attached to the file descriptor that the process is using to read the file. When a process opens /proc/PID/fd/0, it gets the same file as the other process, but the file positions are independent.



        If /proc/PID/fd/0 is a pipe, then writing to it appends the data to the pipe's buffer. In that case, the process that's reading from the pipe will read the data.



        If /proc/PID/fd/0 is a terminal, then writing to it outputs the data on a terminal. A terminal file is bidirectional: writing to it outputs the data, i.e. the terminal displays the text; reading from a terminal inputs the data, i.e. the terminal transmits user input.



        Python is both reading and writing to the terminal. When you run echo 'print "Hello"' > /proc/$(pidof python)/fd/0, you're writing print "Hello" to the terminal. The terminal displays print "Hello" as instructed. The python process doesn't see anything, it's still waiting for input.



        If you want to feed input to the Python process, you have to get the terminal to do it. See crasic's answer for ways to do that.






        share|improve this answer












        Accessing /proc/PID/fd/0 doesn't access file descriptor 0 of process PID, it accesses the file which PID has open on file descriptor 0. This is a subtle distinction, but it matters. A file descriptor is a connection that a process has to a file. Writing to a file descriptor writes to the file regardless of how the file has been opened.



        If /proc/PID/fd/0 is a regular file, writing to it modifies the file. The data isn't necessarily what the process will read next: it depends on the position attached to the file descriptor that the process is using to read the file. When a process opens /proc/PID/fd/0, it gets the same file as the other process, but the file positions are independent.



        If /proc/PID/fd/0 is a pipe, then writing to it appends the data to the pipe's buffer. In that case, the process that's reading from the pipe will read the data.



        If /proc/PID/fd/0 is a terminal, then writing to it outputs the data on a terminal. A terminal file is bidirectional: writing to it outputs the data, i.e. the terminal displays the text; reading from a terminal inputs the data, i.e. the terminal transmits user input.



        Python is both reading and writing to the terminal. When you run echo 'print "Hello"' > /proc/$(pidof python)/fd/0, you're writing print "Hello" to the terminal. The terminal displays print "Hello" as instructed. The python process doesn't see anything, it's still waiting for input.



        If you want to feed input to the Python process, you have to get the terminal to do it. See crasic's answer for ways to do that.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Aug 14 '17 at 0:58









        Gilles

        523k12610431576




        523k12610431576



























            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.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • 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%2f385771%2fwriting-to-stdin-of-a-process%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

            Peggy Mitchell

            Palaiologos

            The Forum (Inglewood, California)