文件描述符与文件流指针:C++ 中的文件操作之旅

目录

​编辑

一、文件描述符:操作系统的小助手

1.1 什么是文件描述符

1.2 常见的文件描述符

1.3 使用文件描述符进行文件操作

代码解释:

二、文件流指针:C++ 标准库的利器

2.1 什么是文件流指针

2.2 使用文件流指针进行文件操作

代码解释:

三、文件描述符与文件流指针的转换

3.1 文件描述符转换为文件流指针

3.2 文件流指针转换为文件描述符

四、总结

        在 C++ 编程的世界里,文件操作是一项基础且重要的技能。而在文件操作的背后,文件描述符和文件流指针扮演着至关重要的角色。它们是我们与文件系统沟通的桥梁,理解它们的工作原理和使用方法,能让我们更加高效地进行文件操作。今天,就让我们一起深入探索文件描述符与文件流指针的奥秘。

一、文件描述符:操作系统的小助手

1.1 什么是文件描述符

        文件描述符是操作系统为每个打开的文件或设备分配的一个非负整数。在 Linux 等类 Unix 系统中,每个进程都有一个文件描述符表,文件描述符就是这个表的索引。通过文件描述符,进程可以方便地对文件进行读写等操作。

1.2 常见的文件描述符

        每个进程启动时,都会默认打开三个文件描述符:

  • 标准输入(stdin):文件描述符为 0,通常对应键盘输入。
  • 标准输出(stdout):文件描述符为 1,通常对应终端屏幕输出。
  • 标准错误(stderr):文件描述符为 2,用于输出错误信息。

1.3 使用文件描述符进行文件操作

        下面是一个简单的 C++ 代码示例,展示了如何使用文件描述符进行文件的读写操作:

#include <iostream>
#include <fcntl.h>
#include <unistd.h>
#include <cstring>

int main() {
    // 打开文件
    int fd = open("test.txt", O_RDWR | O_CREAT, 0666);
    if (fd == -1) {
        perror("open");
        return 1;
    }

    // 写入数据
    const char* data = "Hello, File Descriptor!";
    ssize_t bytes_written = write(fd, data, strlen(data));
    if (bytes_written == -1) {
        perror("write");
        close(fd);
        return 1;
    }

    // 将文件指针移到文件开头
    lseek(fd, 0, SEEK_SET
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安大小万

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值