Perl sysopen 函数


描述

该函数相当于底层C 和操作系统调用open()。打开 FILENAME 指定的文件,并将其与 FILEHANDLE 关联。MODE 参数指定如何打开文件。MODE 的值取决于系统,但有些值是历史设置的。值 0、1 和 2 分别表示只读、只写和读/写。Fcntl 模块中提供了支持的值,并总结在下表中。

请注意,FILENAME 严格来说是一个文件名;不会对内容进行任何解释(与打开不同),并且打开模式由 MODE 参数定义。

如果必须创建该文件,并且已在 MODE 中指定了 O_CREAT 标志,则使用 PERMS 权限创建该文件。PERMS 的值必须以传统的 Unix 风格的十六进制指定。如果未指定 PERMS,则 Perl 使用默认模式 0666(对用户/组/其他进行读/写)。

Flag		Description
O_RDONLY 	Read only.
O_WRONLY 	Write only.
O_RDWR 		Read and write.
O_CREAT		Create the file if it doesn.t already exist.
O_EXCL 		Fail if the file already exists.
O_APPEND 	Append to an existing file.
O_TRUNC 	Truncate the file before opening.
O_NONBLOCK 	Non-blocking mode.
O_NDELAY 	Equivalent of O_NONBLOCK.
O_EXLOCK 	Lock using flock and LOCK_EX.
O_SHLOCK 	Lock using flock and LOCK_SH.
O_DIRECTOPRY 	Fail if the file is not a directory.
O_NOFOLLOW 	Fail if the last path component is a symbolic link.
O_BINARY 	Open in binary mode (implies a call to binmode).
O_LARGEFILE 	Open with large (>2GB) file support.
O_SYNC 		Write data physically to the disk, instead of 
		write buffer.
O_NOCTTY 	Don't make the terminal file being opened 
	 	the processescontrolling terminal, even if you 
	 	don.t have one yet.

句法

以下是该函数的简单语法 -

sysopen FILEHANDLE, FILENAME, MODE, PERMS

sysopen FILEHANDLE, FILENAME, MODE

返回值

该函数在失败时返回 0,在成功时返回 1。

perl_function_references.htm