1. 首页
  2. 操作系统
  3. Unix
  4. open函数-鸿鹄论坛_华为认证h35-211-hcnp-access network题库

open函数-鸿鹄论坛_华为认证h35-211-hcnp-access network题库

上传者: 2024-07-17 11:31:29上传 PDF文件 18.16MB 热度 14次

本章所说明的函数经常被称之为不带缓存的I/O(unbuffered I/O,与将在第5章中说明的标准I/O函数相对照)。术语——不带缓存指的是每个read和write都调用内核中的一个系统调用。这些不带缓存的I/O函数不是ANSI C的组成部分,但是是POSIX.1和XPG3的组成部分。只要涉及在多个进程间共享资源,原子操作的概念就变成非常重要。我们将通过文件I/O和传送给open函数的参数来讨论此概念。并进一步讨论在多个进程间如何共享文件,并涉及内核的有关数据结构。在讨论了这些特征后,将说明dup、fcntl和ioctl函数。

文件描述符对于内核而言,所有打开文件都由文件描述符引用。文件描述符是一个非负整数。当打开一个现存文件或创建一个新文件时,内核向进程返回一个文件描述符。当读、写一个文件时,用open或creat返回的文件描述符标识该文件,将其作为参数传送给read或write。按照惯例,UNIX shell使文件描述符0与进程的标准输入相结合,文件描述符1与标准输出相结合,文件描述符2与标准出错输出相结合。这是UNIX shell以及很多应用程序使用的惯例,而与内核无关。尽管如此,如果不遵照这种惯例,那么很多UNIX应用程序就不能工作。在POSIX.1应用程序中,幻数0、1、2应被代换成符号常数STDIN_FILENO、STDOUT_FILENO和STDERR_FILENO。这些常数都定义在头文件中。文件描述符的范围是0 ~ OPEN_MAX(见表2-7)。早期的UNIX版本采用的上限值是19(允许每个进程打开20个文件),现在很多系统则将其增加至63。SVR4和4.3+BSD对文件描述符的变化范围没有作规定,它只受到系统配置的存储器的总量、整型字的字长以及系统管理员所配置的软性或硬性限制的约束。

open函数调用open函数可以打开或创建一个文件。


#include <sys types.h="">

#include <sys stat.h="">

#include <fcntl.h>



int open(const char *pathname, int oflag,.../*, mode_t mode */);

fcntl.h>sys>sys>

返回:若成功为文件描述符,若出错为-1。我们将第三个参数写为...,这是ANSI C说明余下参数的数目和类型可以变化的方法。

相关链接和图片:

  1. 基于Unix的I O函数的文件逆转程序

  1. UNIX POSIX API

  1. ISO POSIX Linux Unix标准C函数速查手册

  1. 文件I O操作

  1. LabVIEW文件I O

用户评论