码迷,mamicode.com
首页 > 编程语言 > 详细

linux C/C++:文件操作--open、read、write

时间:2015-03-08 00:07:59      阅读:302      评论:0      收藏:0      [点我收藏+]

标签:linux   c   文件描述符   open   create   

               linux C/C++:文件操作--open、create、close

文件描述符

    内核(kernel)利用文件描述符(file descriptor)来访问文件。文件描述符是非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。系统内核会为每一个进程维护一份文件描述符表。如下:

技术分享

内核分配文件描述符规则是,永远分配未使用的并且是最小的。前三个文件描述符:0、1、2,在默认情况下已被占用。当然,可以先关闭。比如关闭1,再分配,可导致重定向。


函数原型

#include<fcntl.h>

int open(const char *path, int flag, .../*mode_t mode*/);

功能:打开文件

返回值:成功,返回文件描述符;若出错,返回-1

参数:

path 文件路径

flag 文件的打开模式

常见模式:O_RDONLY 只读   O_WRONLY 只写  O_RDWR 读写  O_EXEC 执行  O_SEARCH 搜索(应用于目录)(必须,五选一)

可选:O_APPEND 追加   O_CREAT 文件不存在,则创建等。

...  文件权限


函数原型

#include<fcntl.h>

int create(const char *path, mode_t mode);

功能:创建文件

返回值:成功,返回文件描述符;若出错,返回-1

参数:

path 文件路径

mode 文件权限


函数原型

#include<unistd.h>

int close(int fd);

功能:关闭打开的文件,释放资源

参数:fd是待关闭文件描述符

返回:成功,返回0;出错,返回-1

需要说明,当进程结束时,内核会关闭掉进程打开的文件。



所有内容的目录


linux C/C++:文件操作--open、read、write

标签:linux   c   文件描述符   open   create   

原文地址:http://blog.csdn.net/zhangxiangdavaid/article/details/44122735

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!