04-Linux下文件IO-文件IO学习笔记(1)

 

文件IO-介绍

区别
标准IO遵循的是ANSI C(c标准),带缓存,流 FILE
文件IO遵循的是POSIX,无缓存,文件描述符 fd

linux下,标准IO基于文件IO实现

文件IO-文件描述符

  •  每个打开的文件都对应一个文件描述符
  •  文件描述符是非负整数,linux为程序中每个打开的文件分配一个文件描述符
  •  文件描述符从0开始分配,一次递增
  •  文件IO操作通过文件描述符完成

文件IO-open

#include <fcntl.h>
int open(const char *path,int oflag, ...);//打开文件时使用两个参数,创建文件时,用三个参数,第三个设定文件权限
int open(const char *path,int flags,mode_t mode);
path被打开的文件名(可包含路径名)
flagsO_RDINLY:只读方式打开文件
O_WRONLY:只写方式打开文件
O_RDWR:可读写方式打开文件
O_CREAT:若文件不存在,则新建,并用mode设置权限
O_EXCL:如果使用O_CREAT时文件存在,则返回错误信息。这参数可测试文件是否存在。
O_NOCTTY:使用本参数时,如文件为终端,那么终端不可以作为调用open()系统调用的那个进程的控制终端
O_TRUNC:如文件已存在,打开文件时先删除文件原有数据
O_APPEND:以追加方式打开文件
mode被打开文件的存取权限,8进制表示方式

 

 

 

 

 

 

 

 

 

 

 

 

 

 

//eg1:以只写方式打开文件test1.txt。如果问价不存在则创建,否则清空打开。

int fd;
if((fd = open("test1.txt",O_WRONLY|O_CREAT|O_TRUNC,0666)) < 0){
    perror("open");
    return -1;
}
//eg2:以读写方式打开文件test1.txt。如果问价不存在则创建,否则报错。

int fd;
if((fd = open("test1.txt",O_RDWR|O_CREAT|O_EXCL,0666)) < 0){
   if(errno == EEXIST){
        perror("exist error");
    else{
        perror("other error");
    }
}

文件IO-close

#include <unistd.h>

int close(int fd);

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值