文件操作

Linux一点哲学,“一切皆为文件”;在Linux中对目录和设备的操作都等同于对文件的操作,都是使用文件描述符来进行的。

Linux文件可分为:普通文件,目录文件,链接文件,设备文件。


打开一个现存文件或创建一个新文件时,内核就向进程返回一个文件描述符;当需要读写文件时,也需要把文件描述符作为参数传递给相应的函数。

1.系统调用-创建

int creat(const char *filename, mode_t mode ) 
filename :创建的文件名
(包含路径,缺省为当前路径)
 mode:创建模式
常创建模式:
 S_IRUSR      可读
 S_IWUSR     可写
 S_IXUSR      可执行
 S_IXRWU     可读、可写、可执行
 除用以上宏来选择创建模式,也可以用数字来表示



2.系统调用-打开

open函数是用于打开或创建文件,在打开或创建文件时可以指定文件的属性及用户的权限等各种参数。
#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);

参数:
pathname是要打开或创建的文件的名字
flags参数可用来说明此函数的多个选择项
mode对于open函数而言,仅当创建新文件时才使用第三个参数


返回值:成功返回新分配的文件描述符,出错返回-1并设置errno



3.系统调用-关闭

当我们操作完文件以后,需要关闭文件: 
                   int close(int fd)


4.系统调用-读

int read(int fd, const void *buf, size_t   length)

功能:
    从文件描述符fd所指定的文件中读取length个字节到buf所指向的缓冲区中,返回值为实际读取的字节数。


5.系统调用-写

int write(int fd, const void * buf,  size_t length)


功能:
把length个字节从buf指向的缓冲区中写到文件描述符fd所指向的文件中,返回值为实际写入的字节数。



库函数:

1.创建和打开:

r,  rb :   只读方式打开,文件必须已存在
w,wb : 只写方式打开,如果文件不存在则创建,
    如果文 件已存在清空重写
a, ab: 只能在文件末尾追加数据,如果文件不存在则创建
r+,rb+,r+b:      读写方式打开,文件必须已存在
w+,w+b,wb+:  读写方式打开,如果文件不存在则
                               创建,如果文件已存在清空重写
a+,a+b,ab+:      读和追加方式打开,如果文件不存在则创建



2.关闭

#include<stdio.h>
int fclose(FILE * stream);
函数说明:
fclose()用来关闭先前fopen()打开的文件。此动作会让缓冲区内的数据写入文件中,并释放系统所提供的文件资源
返回值:
若关文件动作成功则返回0,
有错误发生时则返回EOF并把错误代码存到errno。


对文件的读和写是最常用的文件操作。在linux C中提供了多种文件读写的函数: 
字符读写函数 :fgetc和fputc 
字符串读写函数:fgets和fputs 
数据块读写函数:fread和fwrite 
格式化读写函数:fscanf和fprintf 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值