Linux下系统调用文件编程整理

来源:互联网 发布:在淘宝开店需要多少钱 编辑:程序博客网 时间:2024/05/01 01:25

2.1打开文件

2.1.1 函数名

open

2.1.2 函数原形

int open(const char*pathname,int flags)

int open(const *pathname,int flags,mode_tmode)

2.1.3 函数功能

打开或者创建一个文件

2.1.4 所属头文件

<sys/types.h> <sys/stat.h><fcntl.h>

2.1.5 返回值

成功:file descriptor   失败返回:-1

2.1.6 参数说明

pathname:要打开的文件名(含路径)

flags:文件打开标志

O_RDONLY   O_WRONLY   O_RDWR

-O_APPEND:已追加的方式打开文件,即在原文件内容后继续添加数据

-O_CREAT:当打开的文件不存在的时候,创建该文件

mode:一定是在flags中使用了-O_CREAT标志,mode记录待创建文件的访问权限


2.2创建文件

2.1.1 函数名

creat

2.1.2 函数原形

int creat(const char* pathname, mode_t mode)

2.1.3 函数功能

创建一个文件,并以只写的方式打开该文件

2.1.4 所属头文件

<sys/types.h> <sys/stat.h><fcntl.h>

2.1.5 返回值

成功:放回文件描述符   失败:返回-1

2.1.6 参数说明

pathname:创建的文件名(含路径)

mode:创建的文件的读写权限


2.3 关闭文件

2.3.1 函数名

close

2.3.2 函数原形

int close(int fd)

2.3.3 函数功能

关闭一个打开的文件

2.3.4 所属头文件

<unistd.h>

2.3.5 返回值

成功:返回0  失败:返回-1

2.3.6 参数说明

fd:待关闭的文件描述符


2.4 读文件

2.4.1 函数名

read

2.4.2 函数原形

ssize_t read(int fd, void *buf, size_t count)

2.4.3 函数功能

从一个打开的文件中读取数据

2.4.4 所属头文件

<unistd.h>

2.4.5 返回值

成功:返回读取的字节数   失败:-1

2.4.6 参数说明

fd:要读取数据的文件的描述符

count:希望读取的字节数目

buf:读取来的数据存到buf指向的空间

 

2.5写文件

2.5.1 函数名

write

2.5.2 函数原形

ssize_t write(int fd, const void *buf,size_t count)

2.5.3 函数功能

向一个打开的fd文件写入数据

2.5.4 所属头文件

<unistd.h>

2.5.5 返回值

成功:写入的字节数   失败:返回-1

2.5.6 参数说明

fd:待写入数据的文件

buf:存储待写入数据的空间

count:最多写入的字节数

2.6定位文件

2.6.1 函数名

lseek

2.6.2 函数原形

off_t lseek(int fd, off_t offset, int whence)

2.6.3 函数功能

重新定位文件的读写位置

2.6.4 所属头文件

<sys/types.h> <unistd.h>

2.6.5 返回值

成功:返回移动后的文件指针距离文件头的位置

失败:返回-1

2.6.6 参数说明

fd:要定位的文件

offset:指针偏移量

whence:文件指针开始位置

  SEEK_SET:文件指针从文件头开始便宜

   SEEK_CUR:文件指针从当前指针位置开始移动

  SEEK_END:文件指针从最后位置开始移动,此时offset都是负数,表示向前移动多少个字节

2.7复制文件描述符

2.7.1 函数名

dup dup2 dup3

2.7.2 函数原形

int dup(int oldfd)

int dup2(int oldfd, int newfd)

int dup3(int oldfd, int newfd, int flags)

2.7.3 函数功能

复制一个文件描述符

2.7.4 所属头文件

dup/dup2  <unistd.h>

dup3

#define _GNU_SOURCE

#include<unistd.h>

2.7.5 返回值

成功:返回一个新的文件描述符fd     失败:返回-1

2.7.6 参数说明

oldfd:待复制的老的文件描述符

 

0 0