unix环境高级编程——文件操作
来源:互联网 发布:嵌入式好还是java好 编辑:程序博客网 时间:2024/06/06 19:47
一、阻塞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);}
0 0
- unix环境高级编程——文件操作
- 《unix高级环境编程》文件和目录——文件操作
- 《unix高级环境编程》文件和目录——文件操作
- 《unix高级环境编程》文件和目录——目录操作
- 《unix高级环境编程》文件和目录——目录操作
- UNIX环境高级编程——文件操作之(read,write,lseek)
- UNIX环境高级编程——文件I/O
- UNIX环境高级编程——文件和目录
- UNIX环境高级编程——文件和目录
- Unix环境高级编程——文件I/O
- 《UNIX环境高级编程》读书笔记 —— 文件 I/O
- 《unix高级环境编程》文件和目录——文件属性
- 《unix高级环境编程》文件和目录——文件属性
- unix环境高级编程——文件i/o
- UNIX环境高级编程—文件I/O
- UNIX环境高级编程-读书笔记-文件操作(一)
- UNIX环境高级编程-读书笔记-文件操作(二)
- UNIX环境高级编程——信号
- 1079 -- 周期串
- Python爬虫框架Scrapy教程(1)—入门
- mac 下android studio 下载sdk
- 去除inline-block元素间间距的N种方法
- 架构解耦
- unix环境高级编程——文件操作
- 1080 -- 奇数检测
- Apache与Tomcat 区别联系
- 1081 -- 小明A+B(2)
- en_US.UTF-8和zh_CN.UTF-8的区别
- 1082 -- 螺旋矩阵
- Java-位运算符
- 0007.Scala类的属性和对象私有字段实战详解
- strong和weak