Perl5 リファレンス



       sysopen FILEHANDLE,FILENAME,MODE

       sysopen FILEHANDLE,FILENAME,MODE,PERMS
               Opens the file whose filename is given by
               FILENAME, and associates it with FILEHANDLE.  If
               FILEHANDLE is an expression, its value is used as
               the name of the real filehandle wanted.  This
               function calls the underlying operating system's
               `open' function with the parameters FILENAME,
               MODE, PERMS.

               The possible values and flag bits of the MODE
               parameter are system-dependent; they are available
               via the standard module `Fcntl'.  See the
               documentation of your operating system's `open' to
               see which values and flag bits are available.  You
               may combine several flags using the `|'-operator.

               Some of the most common values are `O_RDONLY' for
               opening the file in read-only mode, `O_WRONLY' for
               opening the file in write-only mode, and `O_RDWR'
               for opening the file in read-write mode, and.

               For historical reasons, some values work on almost
               every system supported by perl: zero means read-
               only, one means write-only, and two means
               read/write.  We know that these values do not work
               under OS/390 & VM/ESA Unix and on the Macintosh;
               you probably don't want to use them in new code.

               If the file named by FILENAME does not exist and
               the `open' call creates it (typically because MODE
               includes the `O_CREAT' flag), then the value of
               PERMS specifies the permissions of the newly
               created file.  If you omit the PERMS argument to
               `sysopen', Perl uses the octal value `0666'.
               These permission values need to be in octal, and
               are modified by your process's current `umask'.

               In many systems the `O_EXCL' flag is available for
               opening files in exclusive mode.  This is not
               locking: exclusiveness means here that if the file
               already exists, sysopen() fails.  The `O_EXCL'
               wins `O_TRUNC'.

               Sometimes you may want to truncate an already-
               existing file: `O_TRUNC'.

               You should seldom if ever use `0644' as argument
               to `sysopen', because that takes away the user's
               option to have a more permissive umask.  Better to
               omit it.  See the perlfunc(1) entry on `umask' for
               more on this.

               Note that `sysopen' depends on the fdopen() C
               library function.  On many UNIX systems, fdopen()
               is known to fail when file descriptors exceed a
               certain value, typically 255. If you need more
               file descriptors than that, consider rebuilding
               Perl to use the `sfio' library, or perhaps using
               the POSIX:\fIs0:open() function.

               See the perlopentut manpage for a kinder, gentler
               explanation of opening files.


Perl5リファレンスに戻る