Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

Comment on

( #3333=superdoc: print w/replies, xml ) Need Help??
One downside I can think of here is, if you accept a passed-in filehandle, and use it directly, then your method will be altering the file position of the caller's handle.

Thatís not a bug, itís a feature!

It has to work this way, because otherwise you will get mangled I/O. It is critical that the seek points be the same or else you get overwrites and duplicate reads on seekable devices. You will also incur behavioral differences between running on nonseekable devices like sockets, pipes, and ttys then when running on seekable devices like disk files. Completely misery and chaos would ensue.

Never assume that you alone have the sole copy of a particular kernel file descriptor. If you are relying on that, you are almost certainly broken in some way. Passed in descriptors are quite possibly duplicated in another process; with the std streams, this is virtually guaranteed.

In fact, even if you open a file yourself, you cannot know you have the only copy because you cannot guarantee that you are not yourself a clone, since any function that you call after the open is welcome to fork itself an identical process. You cannot know you are who you think you are ó or least, not easily.

Welcome to Unix, and have a nice day.


In reply to Re^2: Difference between File Handles and File Descriptors in function parameters. by tchrist
in thread Difference between File Handles and File Descriptors in function parameters. by tusty

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?

    What's my password?
    Create A New User
    [Discipulus]: Tux did you already read Bluetooth people presence detector :)?
    [Corion]: A good morning everybody ;)

    How do I use this? | Other CB clients
    Other Users?
    Others wandering the Monastery: (8)
    As of 2018-05-24 07:03 GMT
    Find Nodes?
      Voting Booth?