Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re: STDIN inheritance during exec and difference between getc and sysread

by BrowserUk (Patriarch)
on Feb 25, 2013 at 20:14 UTC ( [id://1020560]=note: print w/replies, xml ) Need Help??


in reply to STDIN inheritance during exec and difference between getc and sysread

getc is buffered IO. The first call to a buffered IO call causes a full buffer of data -- 4096 bytes or as much as is available -- to be read from the device into the buffer. Then, in the case of getc(), just the first character of that input is returned to the caller. Subsequent calls to getc() return their data from that buffer.

Sysread on the other hand only reads as much as is requested from the device. Subsequent sysreads need to go back to the device for more.

The implication of your findings is that whilst the filehandle is shared across exec; the buffers used by buffered IO are not. Which is probably as it should be.


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
  • Comment on Re: STDIN inheritance during exec and difference between getc and sysread

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1020560]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others pondering the Monastery: (7)
As of 2024-04-18 21:11 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found