write eof without closing

Diez B. Roggisch deets at nospam.web.de
Sat Aug 19 12:14:02 EDT 2006


cage schrieb:
> Marc 'BlackJack' Rintsch schreef:
>> In <ec72ev$4e0$1 at netlx020.civ.utwente.nl>, cage wrote:
>>
>>> can i write a eof to a file descriptor without closing it?
>>> like:
>>>     fd.write(EOF)
>>> or something
>>
>> What do you expect this to to?  Writing a byte to the file and you don't
>> know which value this byte has?
>>
>> Ciao,
>>     Marc 'BlackJack' Rintsch
> 
> ok let me explain this a bit more...
> I want to use a program that has a 'pipe' mode, in which you can use 
> stdin to send commands to the program. I found out that, when in pipe 
> mode and you are using the keyboard as input source you can do Ctrl-D to 
> 'signal' the program that you have finished typing your command. The 
> program parses and then performs the command, and it doesn't quit. It 
> quits after 'Quit\n' + Ctrl-D
> Now I want a python script to provide the input, how do i do that? I now 
> use popen to be able to write to the program's stdin (p_stdin)
> I noticed that when i do a p_stdin.close() it acts as a 'ctrl-d' in that 
> the program recognizes the signal to process the command, but then I 
> cannot use p_stdin anymore to do p_stdin.write(...)

According to wikipedia (german version, but I bet you can get that info 
using the english one, too) C-d sends EOT - end of transmission. Which 
is ascii 0x04.

So I suggest you try writing

"\x04"

to the pipe. Maybe that works.

Diez



More information about the Python-list mailing list