昆山网站设计,合肥网站建设案例,做极速赛车网站,福田时代汽车官方网站Linux系统API函数手册 (34页)本资源提供全文预览#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧#xff0c;查找使用更方便哦#xff01;11.90 积分(一)文件操作篇 1、creat(建立文件)头文件1 #include2 #include3 #include定义函数1 int creat(const char * pa… Linux系统API函数手册 (34页)本资源提供全文预览点击全文预览即可全文预览,如果喜欢文档就下载吧查找使用更方便哦11.90 积分(一)文件操作篇 1、creat(建立文件)头文件1 #include2 #include3 #include定义函数1 int creat(const char * pathname, mode_tmode);函数说明参数pathname指向欲建立的文件路径字符串。creat()相当于使用下列的调用方式调用open()1 open(const char * pathname ,(O_CREAT|O_WRONLY|O_TRUNC));错误代码关于参数mode请参考open()函数。返回值creat()会返回新的文件描述词若有错误发生则会返回-1并把错误代码设给errno。EEXIST 参数pathname所指的文件已存在。EACCESS 参数pathname 所指定的文件不符合所要求测试的权限EROFS 欲打开写入权限的文件存在于只读文件系统内EFAULT 参数pathname 指针超出可存取的内存空间EINVAL 参数mode 不正确。ENAMETOOLONG 参数pathname太长。ENOTDIR 参数pathname为一目录ENOMEM 核心内存不足ELOOP 参数pathname有过多符号连接问题。EMFILE 已达到进程可同时打开的文件数上限ENFILE 已达到系统可同时打开的文件数上限附加说明creat()无法建立特别的装置文件如果需要请使用mknod()。2、open(打开文件)头文件1 #include2 #include3 #include定义函数1 int open( const char * pathname, int flags);2 int open( const char * pathname,int flags, mode_t mode);函数说明参数pathname 指向欲打开的文件路径字符串。下列是参数flags 所能使用的旗标:O_RDONLY 以只读方式打开文件O_WRONLY 以只写方式打开文件O_RDWR 以可读写方式打开文件。上述三种旗标是互斥的也就是不可同时使用但可与下列的旗标利用OR(|)运算符组合。O_CREAT 若欲打开的文件不存在则自动建立该文件。O_EXCL 如果O_CREAT 也被设置此指令会去检查文件是否存在。文件若不存在则建立该文件否则将导致打开文件错误。此外若O_CREAT与O_EXCL同时设置并且欲打开的文件为符号连接则会打开文件失败。O_NOCTTY 如果欲打开的文件为终端机设备时则不会将该终端机当成进程控制终端机。O_TRUNC 若文件存在并且以可写的方式打开时此旗标会令文件长度清为0而原来存于该文件的资料也会消失。O_APPEND 当读写文件时会从文件尾开始移动也就是所写入的数据会以附加的方式加入到文件后面。O_NONBLOCK 以不可阻断的方式打开文件也就是无论有无数据读取或等待都会立即返回进程之中。O_NDELAY 同O_NONBLOCK。O_SYNC 以同步的方式打开文件。O_NOFOLLOW 如果参数pathname 所指的文件为一符号连接则会令打开文件失败。O_DIRECTORY 如果参数pathname 所指的文件并非为一目录则会令打开文件失败。此为Linux2.2以后特有的旗标以避免一些系统安全问题。参数mode 则有下列数种组合只有在建立新文件时才会生效此外真正建文件时的权限会受到umask值所影响因此该文件权限应该为(mode-umaks)。S_IRWXU00700 权限代表该文件所有者具有可读、可写及可执行的权限。S_IRUSR 或S_IREAD00400权限代表该文件所有者具有可读取的权限。S_IWUSR 或S_IWRITE00200 权限代表该文件所有者具有可写入的权限。S_IXUSR 或S_IEXEC00100 权限代表该文件所有者具有可执行的权限。S_IRWXG 00070权限代表该文件用户组具有可读、可写及可执行的权限。S_IRGRP 00040 权限代表该文件用户组具有可读的权限。S_IWGRP 00020权限代表该文件用户组具有可写入的权限。S_IXGRP 00010 权限代表该文件用户组具有可执行的权限。S_IRWXO 00007权限代表其他用户具有可读、可写及可执行的权限。S_IROTH 00004 权限代表其他用户具有可读的权限S_IWOTH 00002权限代表其他用户具有可写入的权限。S_IXOTH 00001 权限代表其他用户具有可执行的权限。返回值若所有欲核查的权限都通过了检查则返回0 值表示成功只要有一个权限被禁止则返回-1。错误代码EEXIST 参数pathname 所指的文件已存在却使用了O_CREAT和O_EXCL旗标。EACCESS 参数pathname所指的文件不符合所要求测试的权限。EROFS 欲测试写入权限的文件存在于只读文件系统内。EFAULT 参数pathname指针超出可存取内存空间。EINVAL 参数mode 不正确。ENAMETOOLONG 参数pathname太长。ENOTDIR 参数pathname不是目录。ENOMEM 核心内存不足。ELOOP 参数pathname有过多符号连接问题。EIO I/O 存取错误 3、close(关闭文件)头文件1 #include 定义函数 1 int close(int fd); 函数说明当使用完文件后若已不再需要则可使用close()关闭该文件二close()会让数据写回磁盘并释放该文件所占用的资源。参数fd为先前由open()或creat()所返回的文件描述词。返回值若文件顺利关闭则返回0发生错误时返回-1。错误代码EBADF 参数fd 非有效的文件描述词或该文件已关闭。附加说明虽然在进程结束时系统会自动关闭已打开的文件但仍建议自行关闭文件并确实检查返回值。 4、read(由已打开的文件读取数据)头文件1 #include 定义函数 1 ssize_t read(int fd,void * buf ,size_t count); 函数说明read()会把参数fd 所指的文件传送count个字节到buf指针所指的内存中。若参数count为0则read()不会有作用并返回0。返回值为实际读取到的字节数如果返回0表示已到达文件尾或是无可读取的数据此外文件读写位置会随读取到的字节移动。附加说明如果顺利read()会返回实际读到的字节数最好能将返回值与参 关 键 词 Linux 系统 API 函数 手册 天天文库所有资源均是用户自行上传分享仅供网友学习交流未经上传用户书面授权请勿作他用。