After search it seems the ascii of EOF is -1,but how can I echo it out?

My purpose of doing this is to test whether it behaves the same as pressing ctrl-d if I just echo out EOF.

link|improve this question

40% accept rate
feedback

2 Answers

up vote 3 down vote accepted

There is no way to echo out an EOF. An EOF can only be generated either by reaching the end of a file or by invoking the keypress bound to the eof terminal setting (CtrlD by default) when the file being read is bound to the terminal.

link|improve this answer
isn't EOF defined as -1 in stdio.h? why can't echo it out if we know its ascii value? – locale Jun 8 '11 at 9:13
So what. An int with the value of -1 (or 4294967295 if we consider the unsigned version) can't possibly be a character anyway since characters can only have a value from 0 to 255 inclusive. – Ignacio Vazquez-Abrams Jun 8 '11 at 9:15
how do you know it's an int in the first place? – locale Jun 8 '11 at 9:18
2  
Because I do things like look at the fgetc(3) man page. – Ignacio Vazquez-Abrams Jun 8 '11 at 9:20
feedback

In bash you could write exec 1>&- in order to close the file descriptor known as stdout.

As Ignacio already said, EOF is not a character, so the question how to "echo EOF" doesn't make any sense in the first place. You can echo characters (bytes) or you can close a file descriptor, but you can never echo an EOF.

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.