您的位置:首页 > 运维架构 > Linux

Linux系统调用及用户编程接口(API) open close write read lseek

2017-05-24 20:35 1301 查看
系统调用:操作系统提供给用户程序调用的一组“特殊接口,可以通过这组接口获得操作系统内核提供的服务。例如:创建进程、实现进程调度、进程管理,进程间通信,文件系统控制,系统控制,存储管理,网络管理,socket控制,用户管理等。

用户程序接口(API):通过软中断机制向内核提交请求以获取内核服务的接口。API遵循POSIX标准。


文件I/O操作

(1)open和close

open函数用于打开或者创建文件,并可以指定文件的属性及用户的权限参数。

  close函数用于关闭一个打开的文件,当一个进程终止时,它打开的所有文件都由内核自动关闭。   

open函数语法格式

头文件 #include<sys/types.h> //提供类型pid_t的定义
#include<sys/stat.h>
#include<fcntl.h>函数原型
int open(const char *pathname, //被打开的文件(包含路径)
const char flags, 	//文件打开的方式
int perms)		//被打开文件的存取权限,8进制表示法
成功:返回文件描述符
失败:-1



多个flag可以用 | 进行组合。

close函数语法格式

头文件

#include<unistd.h>函数原型
int close(int fd);   //fd 为文件描述符
成功:返回0
失败:返回-1

(2)read 、write 、lsweek

read函数用于从指定文件描述符中读出数据。当从终端设备文件中读出数据时,通常一次最多读一行。

write函数用于向打开的文件写数据,写操作从文件的当前位移量处开始,若磁盘已满或超出该文件的长度,则write函数返回失败。

lseek函数用于在指定文件描述符中将文件指针定位到相应的位置。

头文件

#include<unistd.h>函数原型
ssize_t read/write (int fd, //文件描述符
void *buff,	//指定存储器读出、写入数据的缓冲区
size_t count)	//指定读出、写入的字节数
成功:督导或写入的字节数
已到达文件尾:0(读文件是存在此情况,这是返回的字节数会小于希望读出的字节数)
出错:-1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: