一、阻塞io操作和非阻塞io操作
对于阻塞io操作:当cpu得不到需要的文件数据的时候,则将自己挂起,直到有了数据,才能执行下面的操作。
非阻塞io: 当cpu得不到文件时候,其一直在轮询cpu,直达得到数据。
二、文件描述符
对于内核而言,所有打开的文件,都用文件描述符来引用。所有的文件操作都是由内核态完成的,当一个用户的进程创建一个文件时候,内核会给其返回一个文件描述符。
而当用户进程,对文件进行各类读写操作的时候,也是给内核传入文件描述符。这样,就可以对其文件进行操作了。
三、open函数
功能:调用open函数,可以打开或者创建一个文件。
输出:返回内核创建的文件描述符
#include <stdio.h> #include <fcntl.h> int main(void) { int fd; if((fd = open("./a.txt",O_RDONLY|O_CREAT,S_IRUSR))<0) { } close(fd); printf("%d",fd); }
四、read,write函数
read函数:
输入:1、fd为文件描述符 2、要读入的指针 3、每次要读入的字符数
write函数:输入同read函数
下面代码为从a.txt向b.txt复制内容
#include <stdio.h> #include <fcntl.h> int main(void) { int fd,fd1; int r; int w; char a[100]; if((fd = open("./a.txt",O_RDWR))<0) { } fd1 = open("./b.txt",O_RDWR); if((r=read(fd,a,10))>=0) { printf("read success,the readnum id %d",r); printf("%s",a); } else { printf("read erro"); } write(fd1,a,10); close(fd1); close(fd); printf("%d",fd); }
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-05 10:38:02