(一)和菜鸟一起学unix 之文件I/O:open ,close
2012-09-30 12:25
162 查看
在unix系统中大多文件I/O只用到5个函数,open ,close,write,read lseek.
文件描述符:
对于内核而言,所有文件的打开都通过文件描述符引用。
文件描述符是一个非负整数。
当我们打开一个文件或创建一个文件时,内核像进程返回一个文件描述符。
当读写一个文件的时候,用open返回的文件描述符标识该文件,将其作为一个参数传送给read或write。
首先我们找男人(man)看下open函数 ,
man open
NAME
open, creat - open and possibly create a file or device
名字 open, creat 可以打开和创建一个文件或管理它
SYNOPSIS
头文件
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
int creat(const char *pathname, mode_t mode);
pathname:是要打开文件夹或创建文件夹得名字 flags:说明函数的多个选项
O_RDONLY 以只读的方式打开文件
O_WRONLY 以只写的方式打开文件
O_RDWR 以读写方式打开文件
以上三种打开方式是互斥的。
但可以利用‘|’运算符组合
O_APPEND 每次写的时候都加到文件的末尾
O_CREAT 若文件不存在就创建它,使用此选项的时候,必须同时说明第三个参数mode
O_EXCL 如果同时制定了O_CREAT,而文件已经存在,则出错。这可以测试一个文件是否存在,若不存在则创建此文件。
O_TRUNC 如果此文件存在,而且为读写或只写成功打开,则将其长度截断为0。
返回:若成功为文件描述符,若出错返回-1
man close:
NAME
close - close a file descriptor //关闭一个文件描述符
SYNOPSIS
#include <unistd.h>
int close(int fd);
例子:
#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
int main(void)
{
int fp;
if((fp = open("test.txt",O_RDWR|O_CREAT|O_APPEND )) < 0)
perror("open file fail:");
else
printf("file open\n");
close(fp);
}
文件描述符:
对于内核而言,所有文件的打开都通过文件描述符引用。
文件描述符是一个非负整数。
当我们打开一个文件或创建一个文件时,内核像进程返回一个文件描述符。
当读写一个文件的时候,用open返回的文件描述符标识该文件,将其作为一个参数传送给read或write。
首先我们找男人(man)看下open函数 ,
man open
NAME
open, creat - open and possibly create a file or device
名字 open, creat 可以打开和创建一个文件或管理它
SYNOPSIS
头文件
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
int creat(const char *pathname, mode_t mode);
pathname:是要打开文件夹或创建文件夹得名字 flags:说明函数的多个选项
O_RDONLY 以只读的方式打开文件
O_WRONLY 以只写的方式打开文件
O_RDWR 以读写方式打开文件
以上三种打开方式是互斥的。
但可以利用‘|’运算符组合
O_APPEND 每次写的时候都加到文件的末尾
O_CREAT 若文件不存在就创建它,使用此选项的时候,必须同时说明第三个参数mode
O_EXCL 如果同时制定了O_CREAT,而文件已经存在,则出错。这可以测试一个文件是否存在,若不存在则创建此文件。
O_TRUNC 如果此文件存在,而且为读写或只写成功打开,则将其长度截断为0。
返回:若成功为文件描述符,若出错返回-1
man close:
NAME
close - close a file descriptor //关闭一个文件描述符
SYNOPSIS
#include <unistd.h>
int close(int fd);
例子:
#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
int main(void)
{
int fp;
if((fp = open("test.txt",O_RDWR|O_CREAT|O_APPEND )) < 0)
perror("open file fail:");
else
printf("file open\n");
close(fp);
}
相关文章推荐
- (二)和菜鸟一起学unix之文件和目录 stat
- (二)和菜鸟一起学unix之文件和目录 opendir ,closedir
- (二)和菜鸟一起学unix之文件目录 mkdir ,rmdir
- UNIX--文件I/O函数--open、creat、close、lseek、read、write等各种函数 详解
- (一)和菜鸟一起学习unix之文件I/O:write read lseek
- unix环境下的文件操作的一些函数open()、close()、read()、write()、dup()、fsync()sync()函数
- (二)和菜鸟一起学习unix之文件和目录 getcwd,chdir
- unix环境下的文件操作的一些函数open()、close()、read()、write()、dup()、fsync()sync()函数
- 【UNIX环境高级编程】文件 IO 操作 一 ( open | close | creat | lseek | write | read )
- 文件操作ofstream,open,close,ifstream,fin,按照行来读取数据, fstream,iosin iosout,fio.seekg(),文件写入和文件读写,文件拷贝和文件
- linux文件操作函数(open、write、read、close)可用于串口读写
- [转]Linux文件操作函数open close read write等示例
- qt ui程序使用Linux的文件操作open、close (转)
- C程序设计语言- UNIX系统接口-7.1----文件描述符、低级IO(read、write)、随机访问、(open、creat、close、unlink)
- 文件io之——open/close
- (三) 一起学 Unix 环境高级编程 (APUE) 之 文件和目录
- 文件/目录管理(1)---open()/close()/read()/write()
- 了解open/read/write/close等文件相关系统调用接口,纵向对比fd与FILE结构体
- 嵌入式linux文件I/O编程 (open、read、write、lseek、close
- inux内核态文件操作filp_open/filp_close/vfs_read/vfs_write