linux下open函数和creat函数

 open 函数用于打开和创建文件。以下是 open 函数的简单描述

        #include <fcntl.h>

        int open(const char *path, int access,int mode)

                    返回值:成功则返回文件描述符,否则返回 -1

  path 要打开的文件路径和名称  

如 C:/cpp/a.cpp                     

 

 access 用于指定文件的打开/创建模式,宏定义和含义如下:                       
        O_RDONLY         1    只读打开                        
        O_WRONLY         2    只写打开                        
        O_RDWR           4    读写打开

 

还可选择以下模式与以上3种基本模式相与:                    
   O_CREAT     0x0100   创建一个文件并打开                
   O_TRUNC     0x0200   打开一个已存在的文件并将文件长度设置为0,其他属性保持         
   O_EXCL      0x0400   未使用                            
   O_APPEND    0x0800   追加打开文件                     
   O_TEXT      0x4000   打开文本文件翻译CR-LF控制字符     
   O_BINARY    0x8000   打开二进制字符,不作CR-LF翻译 

 

mode 该参数仅在access=O_CREAT(创建一个文件并打开 )方式下使用,其取值如下:     
        S_IFMT      0xF000   文件类型掩码                     
        S_IFDIR     0x4000   目录                             
        S_IFIFO     0x1000   FIFO 专用                        
        S_IFCHR     0x2000   字符专用                         
        S_IFBLK     0x3000   块专用                           
        S_IFREG     0x8000   只为0x0000                       
        S_IREAD     0x0100   可读                             
        S_IWRITE    0x0080   可写                             
        S_IEXEC     0x0040   可执行   

 

   create函数也能打开一个文件,如果文件不存在,则创建它。和open一样,creat也在调用成功后返回一个文件描述符,如果失败,则设置errno变量并返回-1.

creat的原型为:

int creat (const char *pathname,mode_t mode);

他等价于:

open(pathname,O_CREAT | O_TRUNC | O_WRONLY,mode);

在使用完某个函数后要关闭他,使用  close函数。close只有一个参数,即open返回的文件描述符.

close的原型为:

              #include <unist.d>

               int close(int fd);    


版权声明:本文为songyang516原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。