The thing to understand about files is that they are only one-dimensional streams of bytes. A line ending is just one (or two, depending on your OS) bytes, and the next byte after that is more text.
In order to insert some text at the end of a line, you need to overwrite the line ending and some bytes after it. If you try to do that in the original file, you will be stomping on the bytes you haven't read yet, and things will go horribly wrong.
Three common ways to avoid that problem include:
- Write to a new file, then copy it over the original when done (as in above post)
- Read the whole file in to memory, modify in memory, then write the whole thing out from scratch. (big files vs small memory cause obvious problems here)
- Fixed width fields; make every line take up N bytes. (You know the next few bytes aren't used and can be overwritten safely, but your lines can't get any longer than N, ever.)
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, details, 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, summary, 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: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.