先要回答的问题

文件IO指的是什么?

本文主要讲述如何调用Linux OS所提供的相关的OS API,实现文件的读写。

如何理解文件IO?

IO就是input output的意思,文件io就是文件输入输出,也就是文件读写。

文件读写,读写的是什么?

是数据。

文件IO(Input Output),也就是输入输出是对什么而言的?参考点是什么?

是CPU

初级文件IO——IO过程、open、close、write、read、lseek、dup、dup2、errno、perror

能不能越过OS,直接操作文件呢?

当有OS的时候,应用程序基于OS运行时,必须通过OS API假借OS之手,才能操作底层硬件,无法回避。

文件IO涉及到的OS API

①open函数:打开文件

②close函数:关闭文件

③read函数:从打开的文件读数据

④write函数:向打开的文件写数据

⑤lseek函数:移动在文件中要读写的位置

⑥dup函数:文件读写位置重定位函数,本来是写到这个文件,重定位后可以写到另一个文件里面

⑦fcntl函数:文件描述符设置函数

⑧ioctl函数:一个特殊的函数

文件读写的简单例子

文件操作三步曲

①打开文件  open函数

②读、写等操作文件  read、write函数

③关闭文件  close函数

代码演示

 1 #include <stdio.h>
 2 #include <sys/types.h>
 3 #include <sys/stat.h>
 4 #include <fcntl.h>
 5 #include <unistd.h>
 6 
 7 int main(void)
 8 {
 9     int fd = 0;
10 
11     fd = open("./file.txt", O_RDWR);
12     if(-1 == fd)
13     {
14         printf("open fail\n");
15         return 0;
16     }
17     else
18     {
19         printf("open ok\n");
20     }
21 
22     char buf1[] = "hello world";
23     write(fd, (void *)buf1, 11);
24 
25     lseek(fd, 0, SEEK_SET);
26 
27     char buf2[30] = {0};
28     read(fd, buf2, sizeof(buf2));
29     
30     printf("buf2 = %s\n", buf2);    
31     
32     close(fd);
33     
34     return 0;
35 }
View Code

相关文章: