【Linux】基础IO接口

基础IO:

常用头文件 < fcntl.h>
标准库IO接口
c 默认会打开三个输入输出流, 分别是 stdin , stdout, stderr
这三个流的类型都是FILE*, fopen返回值类型,是个文件指针。

FILE* fopen(const char* path, const char* mode);
//path:文件路径名
//mode:
// r   只读      r+ 可读可写
// w   只写文件不存在则创建,若文件存在则清空原有内容
// w+  多出了可读操作
// a   追加打开,若文件不存在则创建,每次总是写到文件末尾
// a+  多出了可读指针
// 返回值: 文件的操作句柄  ----- 文件流指针

size_t fwrite(void* ptr, size_t size, size_t nmemb, FILE* stream);
//ptr:  要写入的数据           //size: 要写入的块大小
//nmemb: 块数                 // stream: 文件流指针
//返回值写入成功的块个数


int fseek(FILE* stream, long offset, int whence);
// 对stream文件的读写位置跳转到whence位置偏移offset个字节
// whence:跳转的其实位置
// SEEK_SET      文件的起始位置
// SEEK_CUR      当前读写位置
// SEEK_END      文件末尾位置
// offset: 偏移量
// fseek(fp, 0, SEEK_SET)    跳转到文件起始位置


int fread(void* ptr, size_t size, size_t nmemb, FILE* stream);
//ptr:用于接收数据的缓冲区
//size:要读取的块大小
//nmemb:要读取的块个数
//stream:文件流指针
//返回值:实际读取到的块个数    读到文件末尾:0

Linux下系统调用IO接口:int fd;

mode_t umask(mode_t mask);
//当前进程的文件创建权限掩码修改成为 mask
umask(0);    //设置umask是000,默认为002

int open(const char* pathname, int flags)
int open(const char* pathname, int flags, mode_t mode)
// 功能:打开文件
// pathname: 指定要打开的文件名称
// flags:     选项参数例如:O_RDONLY 等。         
// mode: 权限 mode & umask再取反得实际权限(umask一般默认002)
//       例如输入0777  ->  775(实际权限)
// 返回值:文件描述符(正整数)   失败返回 -1.
//如果有新文件生成必须指定第三个参数,设定权限,否则将出现错误

ssize_t read(int fd, void* buf, size_t count);
//从fd文件中读取count长度的数据,放到buf中。 
//count不能大于buf的大小。
//返回值:返回实际读取字节数, 已经读到文件末尾返回 0, 错误返回 -1;

ssize_t write(int fd, const void* buf, size_t count);
// fd: open打开文件所返回的文件描述符
// buf:要写入的数据
// count:要写入的字节数
// 返回值:实际写入的字节数(不一定等于count),失败返回 -1
char* buf = "jintian 9 du ";
ssiz_t ret = write(fd, buf, strlen(buf));

off_t lseek(int fd, off_t offset, int whence);
//跳转fd文件的读写位置到指定处
// whence   SEEK_SET      SEEK_CUR     SEEK_END      
// offset: 偏移量

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值