C++ open()和read()函数使用详解
1.基于C语言实现UDP服务器2.C++中线程同步与互斥的四种方式介绍及对比详解3.Jsoncpp的安装与使用方式
4.C++ open()和read()函数使用详解
5.深入理解C++ 空类大小6.C++17 Filesystem 实用教程7.C语言格式输出方式8.C语言线程池的常见实现方式详解9.opencv实现像素统计的示例代码10.C/C++ 创建Socket实现双工通信11.在Linux系统中下载`gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu`工具链12.linux安装lspci13.制作ubuntu22.04的根文件系统14.【ARM+Qt+OpenCV】基于ARM的双目图像采集系统15.通用C++ Makefile16.linux下安装cmake版本17.添加xxx.so到环境变量里18.在Linux系统下验证万兆网络(10Gbps)的性能和配置情况,可以通过多种方法来实现19.【Ryan】: linux下安装ftp20.【Ryan】: linux下挂在共享文件夹21.linux下配置ip为动态获取22.字符串值相加校验23.数据十六进制打印输出24.linux服务问题传文件连不上问题远程问题等25.提供一个纯C语言的图像压缩程序,但是要达到将6MB的图片压缩到100KB以内的要求,有损压缩肯定是必须的。同时,要在速度上有所提升,我可以为您提供一个基于多线程的图像压缩程序。26.cmake工程构建开发过程27.使用QT开发远程linux服务器过程28.linux系统测试磁盘IO速度 - fio使用对于Framework工程师来说,必要C或者C++编程能力是必须的,像对设备节点的操作是最基本的操作,那么我们便会用到open和read函数。open()函数用于打开文件,而read()函数用于从打开的文件中读取数据。
- open() 函数
open()函数是C/C++标准库中的一个POSIX标准函数,用于打开一个文件并返回一个文件描述符(File Descriptor),以供后续的读写操作。其函数声明如下:
#include <fcntl.h>
int open(const char* path, int flags, mode_t mode);
path:要打开或创建的目标文件名。
flags:对文件进行多种操作的模式,如O_RDONLY(只读打开)、O_WRONLY(只写打开)、O_RdwR(读写打开)、O_CREAT(若文件不存在,创建文件)等。
mode:新文件的访问权限,通常使用权限掩码如S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH。
如果打开文件成功,open()返回一个文件描述符;如果失败,返回-1,并设置errno以指示错误原因12。
- read() 函数
read()函数用于从打开的文件描述符中读取数据。其函数声明如下:
#include <unistd.h>
ssize_t read(int fd, void* buf, size_t count);
fd:文件描述符,由open()函数返回。buf:指向用于存储读取数据的缓冲区的指针。
count:要读取的字节数。
如果读取成功,read()返回实际读取的字节数;如果遇到文件结束或发生错误,返回-1,并设置errno以指示错误原因23。
示例代码
以下是一个简单的示例,展示如何使用open()和read()函数读取文件:
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int main() {
const char* filePath = "input.txt";
int fd = open(filePath, O_RDONLY); // 以只读模式打开文件
if (fd < 0) {
perror("Failed to open file");
return -1;
}
char buffer[1024]; // 定义一个缓冲区用于存储读取的数据
ssize_t bytesRead = read(fd, buffer, sizeof(buffer)); // 从文件中读取数据到缓冲区
if (bytesRead < 0) { // 如果读取失败或遇到文件结束符EOF
perror("Failed to read file");
close(fd); // 关闭文件描述符
return -1;
}
printf("Read %ld bytes from file: %s\n", bytesRead, buffer); // 打印读取的内容和字节数
close(fd); // 关闭文件描述符
return 0;
}
到此这篇关于C++ open()和read()函数使用的文章就介绍到这了,更多相关C++ open()和read()函数内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持
本文来自博客园,作者:Ryan,转载请注明原文链接:https://www.cnblogs.com/Ryan9399/p/18675199
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!