目录
以下函数都是linux下的接口
创建进程的时候会默认打开三个文件,0(stdin),1(stdout),2(stderr)
open函数
功能:
头文件:
函数:
返回值:
-1代表打开失败,其他代表打开成功并且获得文件操作码(file descriptor)
参数:
const char* pathname,为打开的路径(可以包括绝对路径和相对路径)
flags,打开文件采取的操作
必须包含三个中的一个且仅能是一个
O_RDONLY 以只读方式打开
O_WRONLY 以只写方式打开
O_RDWR 以可读可写方式打开
其他为可选,可通过|进行链接
O_CREAT 如果文件不存在则创建该文件
O_EXCL 如果使用O_CREAT选项且文件存在,则返回错误消息
O_NOCTTY 如果文件为终端,那么终端不可以调用open系统调用的那个进程的控制终端
O_TRUNC 如果文件已经存在泽删除文件中原有数据
O_APPEND 以追加的方式打开
mode_t mode, 文件访问权限的初始值,和文件和目录创建掩码umask有关,会减去umask值(可以通过umase函数设置初始掩码值),假如我们要创建文件就需要使用第三个参数的选项,否则创建出来的文件权限不正确 (4位数,八进制表示,第一位为前导0, 输入后面三位,比如0666)
write函数
功能:
头文件:
函数:
返回值:
写入成功返回写入的字节数,失败返回-1
参数:
int fd,要传入的流,文件操作符
const void* buf,传入的内容
size_t count, 传入的字节数
lseek函数
功能:
头文件:
函数:
返回值:
成功,返回新的偏移量,失败返回-1
参数:
int fd,要设置偏移量的流,文件操作符
off_t, 设置的偏移量
int whence
SEEK_SET,在文件的开头开始偏移,offset为正
SEEK_CUR,则将文件的偏移量设置为当前值增加offset,offset可正,可负;
SEEK_END,则将文件的偏移量设置为,文件长度加offset,offset可正,可负。
read函数
功能:
头文件:
函数:
返回值:
若读取成功,则返回读到的字节数;若失败,返回-1;若已达到文件尾,则返回0。因此读到的字节数可能小于count的值
参数:
int fd,要读取的流,文件操作符
const void* buf,读取的内容
size_t count, 读取的字节数
close函数
功能:
头文件:
函数:
返回值:
关闭成功返回0,失败返回-1
参数:
int fd,要关闭的流,文件操作符