This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perlfunc.pod: explain seek in O_APPEND
authorDan Collins <dcollinsn@gmail.com>
Tue, 5 Jul 2016 23:02:12 +0000 (19:02 -0400)
committerJames E Keenan <jkeenan@cpan.org>
Thu, 1 Jun 2017 13:54:57 +0000 (09:54 -0400)
In all modern systems, seek has no effect in O_APPEND. As explained
by Nick Cleaton at that RT, the comment was written in a time when:

    ...opening a file for append [was] the same as opening for
    write and then seeking to the end.

    This is not the case.  When a file is opened in append mode,
    all writes are appended to the then end of file, irrespective
    of the current file position.

Corrected comment was contributed by him.

pod/perlfunc.pod

index b8dca6e..1fb479d 100644 (file)
@@ -2760,8 +2760,8 @@ Here's a mailbox appender for BSD systems.
     sub lock {
         my ($fh) = @_;
         flock($fh, LOCK_EX) or die "Cannot lock mailbox - $!\n";
-
-        # and, in case someone appended while we were waiting...
+        # and, in case we're running on a very old UNIX
+        # variant without the modern O_APPEND semantics...
         seek($fh, 0, SEEK_END) or die "Cannot seek - $!\n";
     }