Digitalmars-d-learn Digest, Vol 95, Issue 30
Hugo Florentino
hugo at acdam.cu
Sat Dec 7 17:56:19 PST 2013
On Sat, 07 Dec 2013 23:03:10 +0100 Chris Cain wrote:
>
> On Friday, 6 December 2013 at 00:24:22 UTC, Hugo Florentino wrote:
>> Hi,
>>
>> I was trying to do something like this (using dmd.2.064.2 both
>> from Windows and Linux), but if nothing is passed from stdin
>> and no parameter is provided, the application freezes:
>>
>> ...snip...
>>
>>
>> Where is the problem?
>>
>> Regards, Hugo
>
> I'm not sure I understand the problem. Your program works as I
> think you describe it should on my Linux box:
>
> ---
> zshazz at manjarox ~/projects/explore % cat /dev/null | rdmd
> inputStuff.d
> No argument passed as parameter or from stdin.
> zshazz at manjarox ~/projects/explore % echo -n "" | rdmd
> inputStuff.d
> No argument passed as parameter or from stdin.
> zshazz at manjarox ~/projects/explore % echo -n "test" | rdmd
> inputStuff.d
> Argument passed from stdin succesfully stored in variable s.
> zshazz at manjarox ~/projects/explore % rdmd inputStuff.d blah.txt
> Argument passed as parameter succesfully stored in variable s.
> ---
>
> If you just run it (via `rdmd inputStuff.d`) it pauses and waits
> for some sort of input, but that's expected. Using `ctrl-d`
> results in "No argument passed as parameter or from stdin." as
> expected in that case.
>
> Could you describe what you're doing exactly that causes it to
> freeze?
Actually it does not freeze, it is expecting user input as you said. I
simply didn't realize this (that's the reason behind my choice of
words).
What I intend is for my application to simply display a message if no
parameter was given and it was not piped after another command. You
know, like the average messages you get when typing alone a command
which expects some form of input.
I don't know how detect input sent to it through a pipe without
requiring user interaction, I have not been able to find a working
example in the documentation, in the source code or using search
engines.
More information about the Digitalmars-d-learn
mailing list