In article <525be7b5-f6d1-4826-9668-cd0909e65446@1g2000prd.googlegroups.com>,
Snaggy <l.cioria@gmail.comwrote:
Quote:
>Or any other standar unix program..
>I want to pass something to a pipe for wc (to count words) and read
>the result into a variable..
>
>For now I put an intermediate result into a file and then open the
>file and read it..
|
Reading and writing to another program through pipes is, in general, a
recipe for deadlock. In the case of "wc" this wouldn't be a problem,
but if you were using something like "tr" it would. To make it work
requires some kind of asynchronous (or select()ed) i/o, multiple
threads, or arbitrary buffering in the operating system. Consequently
the unix popen() call only provides for you to either read or write,
not both.
For this simple case, your solution of using a temporary file is
probably the easiest, requiring little unix-specific knowledge.
-- Richard
--
Please remember to mention me / in tapes you leave behind.