3.1 Linux中的文件IO (3节)
来源:互联网 发布:淘宝店铺封店重开技巧 编辑:程序博客网 时间:2024/06/06 10:57
1.3、一个简单的文件读写实例
1.3.1、打开文件与关闭文件
(1)linux中的文件描述符fd的合法范围是0或者一个正正数,不可能是一个负数。(2)open返回的fd程序必须记录好,以后向这个文件的所有操作都要靠这个fd去对应这个文件,最后关闭文件时也需要fd去指定关闭这个文件。如果在我们关闭文件前fd丢掉了那就惨了,这个文件没法关闭了也没法读写了。
1.3.2、实时查man手册
(1)当我们写应用程序时,很多API原型都不可能记得,所以要实时查询,用man手册(2)man 1 xx查linux shell命令,man 2 xxx查API, man 3 xxx查库函数
1.3.3、读取文件内容
(1)ssize_t read(int fd, void *buf, size_t count);fd表示要读取哪个文件,fd一般由前面的open返回得到
buf是应用程序自己提供的一段内存缓冲区,用来存储读出的内容
count是我们要读取的字节数
返回值ssize_t类型是linux内核用typedef重定义的一个类型(其实就是int),返回值表示成功读取的字节数。
1.3.4、向文件中写入
(1)写入用write系统调用,write的原型和理解方法和read相似(2)注意const在buf前面的作用,结合C语言高级专题中的输入型参数和输出型参数一节来理解。
(3)注意buf的指针类型为void,结合C语言高级专题中void类型含义的讲解
1.3.5、程序实例
#include <stdio.h>#include <sys/types.h>#include <sys/stat.h> //通过man手册查询open或者write相关的头文件,添加在这里#include <fcntl.h>#include <unistd.h>#include <string.h>int main(int argc, char *argv[]){int fd = -1;// fd 就是file descriptor,文件描述符char buf[100] = {0};char writebuf[20] = "l love linux";int ret = -1;// 第一步:打开文件fd = open("a.txt", O_RDWR);if (-1 == fd)// 有时候也写成: (fd < 0){printf("文件打开错误\n");}else{printf("文件打开成功,fd = %d.\n", fd);}// 第二步:读写文件// 写文件ret = write(fd, writebuf, strlen(writebuf));if (ret < 0){printf("write失败.\n");}else{printf("write成功,写入了%d个字符\n", ret);}/*// 读文件ret = read(fd, buf, 5);if (ret < 0){printf("read失败\n");}else{printf("实际读取了%d字节.\n", ret);printf("文件内容是:[%s].\n", buf);}*/// 第三步:关闭文件close(fd);return 0;}
0 0
- 3.1 Linux中的文件IO (3节)
- 3.1 Linux中的文件IO (4节)
- Linux中的文件IO
- 3.1 Linux中的文件IO (1、2节)
- 3.1 Linux中的文件IO (5、6节)
- 3.1 Linux中的文件IO (7、8节)
- 3.1 Linux中的文件IO (9、10节)
- 3.1 Linux中的文件IO (11、12节)
- 3.1 Linux中的文件IO (13、14节)
- linux应用编程和网络编程-3.1.linux中的文件IO
- C中的文件IO
- Unix中的文件IO
- Linux中的IO使用方法
- Linux中的IO模型
- Linux中的IO模型
- Linux 文件IO理解
- 漫谈linux文件IO
- 漫谈linux文件IO
- Netty入门--NIO
- 逻辑或操作符
- private static final long serialVersionUID = ??? 的作用
- CSS常用布局之——水平垂直居中解决方案
- Android 开发中scrollview嵌套webview滑动冲突的解决方案
- 3.1 Linux中的文件IO (3节)
- 逻辑非操作符
- SOAP、WSDL、Web Service详解
- web面试题
- Matlab中plot函数参数解析
- GTK的非实例化类型-interface
- linux 初级学习之文本处理工具2-6
- 抽象工厂模式
- git删除远程文件夹或文件的方法