Linux-基础IO

目录

  • IO库函数接口
    • fopen
    • fwrite
    • fread
    • fseek
    • fclose
    • 实例
  • 学习系统调用IO接口
  • 探讨IO操作句柄
  • 重定向实现

IO库函数接口

fopen

file *fopen(cosnt char *path, const char *mode);

path:要打开的文件路径名称; mode:“r”,“r+”,“w”,“w+”,“a”,“a+”,“b”
r:只读; r+:可读可写;
w:只写,文件不存在则创建新文件; w+:可读可写,不存在则创建新文件;
a:追加只写(总是将数据写入文件末尾(其他则是覆盖写),不存在则创建新文件);a+:读和追加写,打开文件后从起始读,但是写总是在末尾,不存在则创建新文件;
b:对文件数据进行二进制操作
返回值:失败返回NULL;成功返回一个文件流指针FILE*

fwrite

size_t *fwrite(cosnt void *ptr, size_t size, size_t nmemb, FILE *stream);

ptr:要写入文件的数据的空间地址;
size:块大小;nmemb:块个数;两个相乘为总体要操作数据大小。
stream:操作句柄–fopen返回的文件流指针;
返回值:实际写入文件的块个数

fread

size_t *fread(void *ptr, size_t size, size_t nmemb, FILE *stream);

ptr:一块缓冲区内存空间的地址,用于存放读取的数据
size:块大小;nmemb:块个数;
stream:操作句柄–fopen返回的文件流指针
返回值:成功返回读取到完整块个数;出错返回0;读取到文件末尾返回0,读取的数据不足一块也返回0;
建议:块大小为1,块个数为操作数据长度,否则若读取一块数据50字节,但是实际只读取了40字节的时候也会返回0,通过返回值无法确定是否已经读取到的数据
需要通过其他判断是哪个出错,feof判断读取到文件末尾,ferror判断读取数据是否出错。

fseek

int fseek(FILE *stream, long offset, int whence);

–跳转文件读写位置
stream:操作句柄-打开文件返回的文件流指针
offset:相对起点开始偏移量(偏移量可以是负数–正数向后,负数向前)
whence:相对起点–SEEK_SET-起始位置;SEEK_CUR-当前位置;SEEK_END-末尾位置
返回值:成功返回0;失败返回-1

fclose

int fclose(FILE *fp);

–关闭文件,释放资源

实例

Linux-基础IO_第1张图片

学习系统调用IO接口

探讨IO操作句柄

重定向实现

你可能感兴趣的:(Linux,linux,服务器)