linux基本的文件系统调用

Open系统调用

open函数的三个参数:

(1)path是已经存在的文件的路径

(2)oflags参数:O_RDONLY ,就以只读方式打开文件

                 O_WDONLY,就以只写方式打开文件

                 O_RDWR,就以读写方式打开文件

(3)mode:文件的权限,对于一个已经存在的文件,参数mode是没有用的,通常将其省略,因此这种情况下open调用只需两个参数。

 

当文件不存在时,open会创建一个新文件(仅能是普通文件),我们只需要用

 or操作向open的 oflags参数中加入标志O_CREAT即可。这样可以创建一个新的只读文件,但是这没有任何意义,因为所创建的新文件没有任何可读内容。因此一般需要 O_CREAT与 O_WRONLY或O_RDWR一起使用,此时就需要mode参数了。例如:int fd = open("/home/chen/newfile",O_RDWR | O_CREAT,MODE_FILE) 参数mode仅在创建新文件时有效,对于一个已经存在的文件,它没有任何作用。

O_RDONLY只读方式打开

O_WRONLY只写方式打开

O_RDWR读写方式打开

O_APPEND每次写都追加到文件的尾端

O_CREAT若文件不存在则创建文件

O_DSYNC设置同步I/O方式

O_EXCL如果文件已存在,则出错;必须与O_CREAT一起使用

O_NOCTTY不将此设备作为控制终端

O_NONBLOCK不等待命名管道或特殊文件准备好

O_RSYNC设置同步I/O方式

O_SYNC设置同步I/O方式

O_TRUNC将其长度截短为0

 

Write系统调用

write函数的三个参数:

(1)fildes: 文件描述符

(2)buf:指定写入数据的数据缓冲区

(3)nbytes:指定写入的字节数

函数返回值:

成功:已写的字节数

出错:-1

0:未写入任何数据

 

read系统调用

  read函数的三个参数:

(1)fildes:文件描述符

(2)buf:指定读入数据的数据缓冲区

(3)nbytes:指定读入的字节数

函数返回值:

成功:已写的字节数

出错:-1

0:未读入任何数据

 

Close系统调用

close并没有做什么实质工作,它没有刷新任何内核缓冲区,而仅仅是使文件描述符可以重用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值