Linux复习(系统编程2)

文件操作

1.Linux平台下的文件操作

fopen   fread    fwrite   fclose    fseek    fgets        库函数

open    read     write    close     lseek                    系统调用函数

系统调用函数是系统内核提供给用户访问系统管理的底层硬件接口。系统调用函数用户层只是一个接口,函数的具体实现都是由操作系统实现,并且函数是在内核态执行的。

库函数是由库来实现,在用户态执行。有部分库函数需要转调系统调用函数。

open函数

fopen      open:打开文件

FILE  *fopen(const  char  *path,const  char  *flag);

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

返回非负整数,文件描述符,出错返回-1,path表示打开文件的路径+文件名,flag表示打开方式  O_RDONLY(只读)    O_WRONLY(只写)  O_RDWR(可读可写)   O_CREAT(创建)   O_TRUNC(清空)    O_APPEND(附加)

mode是指定新创建的文件的访问权限 4  2  1  

read函数

fread    read:读取文件内容

int   fread(void  *buff,int  size,int  count,  FILE *fp)

int  read(int  fd,void  *buff,int  size)

该函数的返回值是读到的实际数据字节数,open的返回值指定操作打开文件,buff是读取的内容的存储缓冲区,size是读取的个数

write函数

fwrite    rwrite:向文件中写入数据

int   fwrite(void  *buff,  int  size,  int  count,  FILE *fp)

int  write(int  fd,  void  *buff,  int  size)

该函数的返回值是写成功的实际数据字节数,open的返回值,指定操作打开文件,buff是要写数据的起始位置,size是要写数据的长度(字节)

close函数

fclose   close:关闭打开的文件

int   fclose(FILE *fp);

int   close(int   fd);

seek函数

fssek    lseek  :移动读写游标

int   lseek(int   fd,int   size,int   flag);

flag:  SEEK_SET    SEEK_CUR   SEEK_END

 

获取文件属性信息

int   stat(char  *pathname,struct  stat  *buf);

int   fstat(int   filed,  struct  stat  *buf);

int   lstat(char  *pathname,struct   stat   *buf);

用户态切换内核态的流程

1.将系统调用号用eax记录

2.保存现场

3.触发0x80中断(由内核开始接管并且执行中断处理程序)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值