📄 open.2
字号:
.\" Copyright (c) 1980 Regents of the University of California..\" All rights reserved. The Berkeley software License Agreement.\" specifies the terms and conditions for redistribution..\".\" @(#)open.2 6.4 (Berkeley) 5/14/86.\".TH OPEN 2 "May 14, 1986".UC 4.SH NAMEopen \- open a file for reading or writing, or create a new file.SH SYNOPSIS.nf.ft B#include <sys/types.h>#include <fcntl.h>int open(const char *\fIpath\fP, int \fIflags\fP \fR[\fP, mode_t \fImode\fP\fR]\fP).ft R.fi.SH DESCRIPTION.B Openopens the file.I pathfor reading and/or writing, as specified by the.I flagsargument and returns a descriptor for that file.The.I flagsargument may indicate the file is to becreated if it does not already exist (by specifying theO_CREAT flag), in which case the file is created with mode.I modeas described in.BR chmod (2)and modified by the process' umask value (see.BR umask (2))..PP.I Pathis the address of a string of ASCII characters representinga path name, terminated by a null character.The flags specified are formed by.IR or 'ingthe following values.PP.RS.ta +12n.nfO_RDONLY open for reading onlyO_WRONLY open for writing onlyO_RDWR open for reading and writingO_NONBLOCK do not block on openO_APPEND append on each writeO_CREAT create file if it does not existO_TRUNC truncate size to 0O_EXCL error if create and file exists.fi.DT.RE.PPOpening a file with O_APPEND set causes each write on the fileto be appended to the end. If O_TRUNC is specified and thefile exists, the file is truncated to zero length.If O_EXCL is set with O_CREAT, then if the file alreadyexists, the open returns an error. This can be used toimplement a simple exclusive access locking mechanism.If O_EXCL is set and the last component of the pathname isa symbolic link, the open will fail even if the symboliclink points to a non-existent name.If the O_NONBLOCK flag is specified and the open call would resultin the process being blocked for some reason, the open returns immediately. .PPUpon successful completion a non-negative integer termed afile descriptor is returned.The file pointer used to mark the current position within thefile is set to the beginning of the file..PPThe new descriptor is set to remain open across.BR execvesystem calls; see.BR close (2)..PPThe system imposes a limit on the number of descriptorsopen simultaneously by one process..SH "ERRORSThe named file is opened unless one or more of thefollowing are true:.TP 15[ENOTDIR]A component of the path prefix is not a directory..TP 15[ENAMETOOLONG]The path name exceeds PATH_MAX characters..TP 15[ENOENT]O_CREAT is not set and the named file does not exist..TP 15[ENOENT]A component of the path name that must exist does not exist..TP 15[EACCES]Search permission is denied for a component of the path prefix..TP 15[EACCES]The required permissions (for reading and/or writing)are denied for the named file..TP 15[EACCES]O_CREAT is specified,the file does not exist,and the directory in which it is to be createddoes not permit writing..TP 15[EACCES]A device to be opened for writing is physically write protected..TP 15[ELOOP]Too many symbolic links were encountered in translating the pathname.(Minix-vmd).TP 15[EISDIR]The named file is a directory, and the arguments specifyit is to be opened for writing..TP 15[EROFS]The named file resides on a read-only file system,and the file is to be modified..TP 15[EMFILE]The system limit for open file descriptors per process has already been reached..TP 15[ENFILE]The system file table is full..TP 15[ENXIO]The named file is a character special or blockspecial file, and the device associated with this special filedoes not exist..TP 15[ENOSPC]O_CREAT is specified,the file does not exist,and the directory in which the entry for the new file is being placedcannot be extended because there is no space left on the filesystem containing the directory..TP 15[ENOSPC]O_CREAT is specified,the file does not exist,and there are no free inodes on the file system on which thefile is being created..ig.TP 15[EDQUOT]O_CREAT is specified,the file does not exist,and the directory in which the entry for the new fieis being placed cannot be extended because theuser's quota of disk blocks on the file systemcontaining the directory has been exhausted..TP 15[EDQUOT]O_CREAT is specified,the file does not exist,and the user's quota of inodes on the file system onwhich the file is being created has been exhausted....TP 15[EIO]An I/O error occurred while making the directory entry orallocating the inode for O_CREAT..TP 15[EFAULT].I Pathpoints outside the process's allocated address space..TP 15[EEXIST]O_CREAT and O_EXCL were specified and the file exists..SH "SEE ALSO".BR chmod (2),.BR close (2),.BR dup (2),.BR fcntl (2),.BR lseek (2),.BR read (2),.BR write (2),.BR umask (2).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -