Linux 2 fwritefreadfread和fwrite可用来读写字符型文件也可以用来读写二进制文件fread和fwrite大多数场景用在读写固定大小的数据如结构体。文件流定位函数其他文件IO1. Linux内核向应用层提供的文件操作方法属于Linux系统调用。打开文件 open读写文件 read/write关闭文件 close​ 2. 函数接口​ open​ 文件描述符小的非负的整形数据1024个0-1023操作系统为已打开的文件分配的一个标识符。分配原则最小未被使用原则文件IO操作文件面向文件描述符。操作系统默认已经打开了三个文件标准输入设备、标准输出设备、标准出错设备closewrite#include head.h int main(int argc, const char *argv[]) { int fd open(1.txt, O_WRONLY | O_CREAT | O_TRUNC, 0664); if (fd 0) { printf(open error\n); return -1; } int cnt 100; char str[] {how are you}; ssize_t size write(fd, hello world, strlen(hello world)); printf(size %ld\n, size); write(fd, str, strlen(str)); write(fd, cnt, sizeof(int)); close(fd); return 0; }read#include head.h int main(int argc, const char *argv[]) { int fd open(1.txt, O_RDONLY); if (fd 0) { printf(open error\n); return -1; } char buff[512] {0}; ssize_t size read(fd, buff, sizeof(buff)); printf(size %ld, buff %s\n, size, buff); size read(fd, buff, sizeof(buff)); printf(size %ld, buff %s\n, size, buff); close(fd); return 0; }cat#include head.h int main(int argc, const char *argv[]) { int fd open(stdio.h, O_RDONLY); if (fd 0) { printf(open error\n); return -1; } char buff[512] {0}; while (1) { ssize_t size read(fd, buff, sizeof(buff)); if (size 0) { break; } write(1, buff, size); //printf(%s, buff); } close(fd); return 0; }