【C#生态园】构建高效HTTP请求和异常处理:深度剖析6款.NET库和框架

news2024/9/23 10:23:41

简化JSON操作、优化API调用:探索.NET开发利器的核心功能

前言

在现代的软件开发中,使用合适的库和框架可以极大地提高开发效率和代码质量。特别是在构建和调用 RESTful Web 服务时,选择合适的工具至关重要。本文将介绍几个在 .NET 开发中常用的库和框架,它们分别用于生成、描述、调用和可视化 RESTful Web 服务,以及简化 HTTP 请求、处理异常等功能。

欢迎订阅专栏:C#生态园

文章目录

  • 简化JSON操作、优化API调用:探索.NET开发利器的核心功能
    • 前言
    • 1. Swagger:一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful Web 服务
      • 1.1 简介
        • 1.1.1 核心功能
        • 1.1.2 使用场景
      • 1.2 安装与配置
        • 1.2.1 安装指南
        • 1.2.2 基本设置
      • 1.3 API 概览
        • 1.3.1 文档生成
        • 1.3.2 API 调用
    • 2. NSwag:一个用于生成 .NET API 文档和客户端代码的库
      • 2.1 简介
        • 2.1.1 核心功能
        • 2.1.2 使用场景
      • 2.2 安装与配置
        • 2.2.1 安装方法
        • 2.2.2 基本设置
      • 2.3 API 概览
        • 2.3.1 文档生成
        • 2.3.2 客户端代码生成
    • 3. Flurl:用于简化HTTP请求的库
      • 3.1 简介
        • 3.1.1 核心功能
        • 3.1.2 使用场景
      • 3.2 安装与配置
        • 3.2.1 安装指南
        • 3.2.2 基本配置
      • 3.3 API 概览
        • 3.3.1 URL构建
        • 3.3.2 请求发送
    • 4. Polly:用于处理HTTP请求中的重试和异常处理的库
      • 4.1 简介
        • 4.1.1 核心功能
        • 4.1.2 使用场景
      • 4.2 安装与配置
        • 4.2.1 安装方法
        • 4.2.2 基本设置
      • 4.3 API 概览
        • 4.3.1 策略定义
        • 4.3.2 异常处理
    • 5. Newtonsoft.Json:用于JSON序列化和反序列化的库
      • 5.1 简介
        • 5.1.1 核心功能
        • 5.1.2 使用场景
      • 5.2 安装与配置
        • 5.2.1 安装指导
        • 5.2.2 基本配置
      • 5.3 API 概览
        • 5.3.1 JSON序列化
        • 5.3.2 JSON反序列化
    • 6. ServiceStack:一个全功能的C# REST API框架
      • 6.1 简介
        • 6.1.1 核心功能
        • 6.1.2 使用场景
      • 6.2 安装与配置
        • 6.2.1 安装指南
        • 6.2.2 基本设置
      • 6.3 API 概览
        • 6.3.1 服务创建
        • 6.3.2 数据访问
    • 总结

1. Swagger:一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful Web 服务

1.1 简介

Swagger是一个用于生成、描述、调用和可视化RESTful Web服务的规范和完整框架。它包括一组工具,可以轻松地为API设计、编写文档、测试和部署。

1.1.1 核心功能

Swagger的核心功能包括:

  • 自动生成API文档
  • 提供API调用接口
  • 支持可视化展示
1.1.2 使用场景

Swagger通常用于以下场景:

  • 在开发过程中生成API文档
  • 提供一个交互式API控制台,方便开发人员调试和测试API
  • 将API以可视化形式展示给团队成员或客户

1.2 安装与配置

Swagger提供了多种安装和配置方式,下面是一种基本的安装与配置方法。

1.2.1 安装指南

通过NuGet包管理器安装 Swashbuckle.AspNetCore 库。在Visual Studio中,可以直接在NuGet包管理器控制台中运行以下命令:

Install-Package Swashbuckle.AspNetCore

关于Swashbuckle.AspNetCore更多信息,请查看官方文档

1.2.2 基本设置

Startup.cs文件中进行Swagger的基本配置。以下是一个简单的配置示例:

public void ConfigureServices(IServiceCollection services)
{
    services.AddSwaggerGen(c =>
    {
        c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" });
    });
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // ...

    app.UseSwagger();
    app.UseSwaggerUI(c =>
    {
        c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
    });

    // ...
}

更多高级设置请参考官方文档

1.3 API 概览

1.3.1 文档生成

Swagger可以根据代码中的特性和注释自动生成API文档。以下是一个简单的控制器示例:

[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
    [HttpGet]
    public IEnumerable<WeatherForecast> Get()
    {
        // ...
    }
}

以上代码中的特性会被Swagger解析并生成对应的API文档。

1.3.2 API 调用

Swagger生成的API文档同时提供了API调用接口,开发人员可以直接在Swagger UI界面上调用API。以下是一个C#实例代码,演示如何使用生成的API文档中的接口:

var client = new HttpClient();
var response = await client.GetAsync("https://localhost:<port>/weatherforecast");
if (response.IsSuccessStatusCode)
{
    var content = await response.Content.ReadAsStringAsync();
    Console.WriteLine(content);
}

以上是Swagger的简要介绍和基本配置示例,具体内容和更多功能请查阅Swagger官方文档。

2. NSwag:一个用于生成 .NET API 文档和客户端代码的库

2.1 简介

NSwag 是一个功能强大的工具,用于生成 .NET API 文档和客户端代码。它支持从 WebAPI 控制器、ASP.NET Core 控制器、WCF 或其他 .NET 后端生成 OpenAPI/Swagger 规范文档,并可以进一步生成 C# 和 TypeScript 客户端代码。

2.1.1 核心功能
  • 从 .NET 后端生成 OpenAPI/Swagger 规范文档
  • 自动生成 C# 和 TypeScript 客户端代码
2.1.2 使用场景

NSwag 可以广泛应用于 .NET 后端项目中,特别适用于需要自动生成 API 文档和客户端代码的场景,如前后端分离开发、微服务架构等。

2.2 安装与配置

2.2.1 安装方法

首先,在 Visual Studio 中打开 NuGet 包管理器控制台,执行以下命令安装NSwag:

Install-Package NSwag.AspNetCore
2.2.2 基本设置

在 ASP.NET Core 项目的 Startup.cs 文件中进行配置,示例代码如下:

public void ConfigureServices(IServiceCollection services)
{
    // 配置NSwag生成Swagger 文档
    services.AddOpenApiDocument(config =>
    {
        config.Title = "My API";
        config.AddSecurity("JWT", Enumerable.Empty<string>(), new OpenApiSecurityScheme
        {
            Type = OpenApiSecuritySchemeType.ApiKey,
            Name = "Authorization",
            In = OpenApiSecurityApiKeyLocation.Header,
            Description = "Copy this into the value field: Bearer {token}"
        });
    });
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // 启用NSwag SwaggerUI
    app.UseOpenApi();
    app.UseSwaggerUi3();
}

2.3 API 概览

2.3.1 文档生成

通过 NSwag 自动生成 API 文档非常简单。在 .NET 后端项目中集成 NSwag 后,它会自动扫描你的 API 控制器并生成相应的 Swagger 文档。你可以访问 https://your-api-base-url/swagger 来查看生成的 API 文档。

2.3.2 客户端代码生成

NSwag 也提供了生成客户端代码的功能。以下是一个使用 NSwag 命令行工具生成 C# 客户端代码的示例:

nswag openapi2csclient /input:swagger.json /classname:ApiClient /output:Client.cs

通过上述命令,NSwag 会根据提供的 Swagger 文档(swagger.json)生成一个名为 ApiClient 的 C# 客户端代码文件。

官网链接:NSwag

3. Flurl:用于简化HTTP请求的库

Flurl 是一个用于简化 HTTP 请求的 C# 库,它使得发送和处理 HTTP 请求变得更加简单和直观。在本文中,我们将介绍 Flurl 的核心功能、安装与配置方法以及 API 概览。

3.1 简介

3.1.1 核心功能

Flurl 提供了一种简洁而强大的方式来构建和发送 HTTP 请求,并处理响应。它能够轻松地处理 URL 构建、参数传递、请求发送等操作。

3.1.2 使用场景

Flurl 通常用于需要频繁进行 HTTP 请求的应用程序中,比如 Web API 调用、远程数据获取等场景。

3.2 安装与配置

3.2.1 安装指南

你可以通过 NuGet 来安装 Flurl。在 Visual Studio 中,可以使用 NuGet 包管理器来搜索并安装 Flurl 包。或者在 Package Manager 控制台中运行以下命令:

Install-Package Flurl.Http

更多详情请参考 NuGet Flurl.Http

3.2.2 基本配置

安装完成后,在代码中引入 Flurl 的命名空间:

using Flurl;
using Flurl.Http;

3.3 API 概览

3.3.1 URL构建

Flurl 提供了便捷的 API 来构建 URL,可以使用 AppendPathSegmentSetQueryParams 等方法来构建所需的 URL。下面是一个示例:

var url = "https://api.example.com"
    .AppendPathSegment("users")
    .SetQueryParams(new {
        page = 1,
        pageSize = 10
    });

更多关于 URL 构建的信息,请查阅 Flurl URL Building

3.3.2 请求发送

Flurl 使得发送请求变得非常简单,可以使用 GetAsyncPostJsonAsync 等方法来发送不同类型的请求。下面是一个示例:

var response = await "https://api.example.com/users"
    .WithOAuthBearerToken("your_token")
    .GetAsync();

更多关于请求发送的信息,请查阅 Flurl Request Sending

4. Polly:用于处理HTTP请求中的重试和异常处理的库

4.1 简介

Polly 是一个能够帮助开发人员处理重试和异常的库,可以轻松地增加容错机制到.NET应用程序中。

4.1.1 核心功能

Polly 提供了强大的策略定义,可用于配置重试、回退、断路器等行为,以及异常处理和故障处理。

4.1.2 使用场景
  • 在执行 HTTP 请求时,需要进行重试以增加稳定性和可靠性。
  • 需要对不同类型的异常进行特定的处理或重试策略。
  • 需要实现断路器模式来防止雪崩效应。

4.2 安装与配置

4.2.1 安装方法

使用 NuGet 包管理器来安装 Polly 库:

Install-Package Polly

更多安装方式请参考 NuGet Polly

4.2.2 基本设置

在使用之前,需要在代码中引入 Polly 命名空间:

using Polly;

4.3 API 概览

4.3.1 策略定义

Polly 允许用户定义各种策略来处理重试、回退和瞬态故障等。以下是一个简单的重试策略示例:

// 定义一个重试策略,最多重试3次
var policy = Policy
    .Handle<HttpRequestException>()
    .Retry(3);

更多关于策略定义的信息,请参考 Polly - Policy Syntax

4.3.2 异常处理

Polly 也提供了丰富的异常处理功能,可以根据具体的异常类型进行处理。以下是一个处理特定异常的示例:

// 处理特定异常并执行自定义操作
var policy = Policy
    .Handle<TimeoutException>()
    .Fallback(() => Console.WriteLine("执行超时!"));

更多关于异常处理的信息,请参考 Polly - Exception Handling

以上是对 Polly 库的简单介绍和基本使用说明,更多详细信息请参考 Polly GitHub

5. Newtonsoft.Json:用于JSON序列化和反序列化的库

5.1 简介

Newtonsoft.Json是一个用于在.NET平台上进行JSON序列化和反序列化的流行库,由James Newton-King开发。它提供了一系列强大的功能,使得处理JSON数据变得简单而高效。

5.1.1 核心功能
  • 支持将.NET对象序列化为JSON格式的字符串
  • 能够将JSON格式的字符串反序列化为.NET对象
  • 提供了灵活的配置选项,以满足不同的序列化和反序列化需求
5.1.2 使用场景

Newtonsoft.Json可广泛应用于各种.NET开发场景中,包括但不限于:

  • Web开发中处理前后端数据交互
  • 与第三方API进行通信时的数据格式转换
  • 数据存储和读取过程中的对象序列化和反序列化

5.2 安装与配置

5.2.1 安装指导

在Visual Studio中,可以通过NuGet Package Manager来安装Newtonsoft.Json库。在Package Manager Console中执行以下命令即可完成安装:

Install-Package Newtonsoft.Json
5.2.2 基本配置

使用Newtonsoft.Json无需复杂的配置过程,只需在C#代码中引入相关命名空间即可开始使用。

using Newtonsoft.Json;

5.3 API 概览

5.3.1 JSON序列化
// 创建一个示例对象
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main()
    {
        // 初始化Person对象
        var person = new Person { Name = "Alice", Age = 30 };

        // 将对象序列化为JSON格式的字符串
        string json = JsonConvert.SerializeObject(person);

        Console.WriteLine(json);
        // 输出结果: {"Name":"Alice","Age":30}
    }
}

更多关于JSON序列化的信息,请参考官方文档

5.3.2 JSON反序列化
class Program
{
    static void Main()
    {
        // 定义一个JSON格式的字符串
        string json = @"{'Name':'Bob','Age':25}";

        // 将JSON格式的字符串反序列化为Person对象
        Person person = JsonConvert.DeserializeObject<Person>(json);

        Console.WriteLine(person.Name); // 输出结果: Bob
        Console.WriteLine(person.Age);  // 输出结果: 25
    }
}

更多关于JSON反序列化的信息,请参考官方文档

6. ServiceStack:一个全功能的C# REST API框架

ServiceStack 是一个开源的、高性能的C# Web服务框架,支持创建 RESTful API 和 Web 服务。它具有简洁的设计和强大的功能,可以帮助开发人员快速构建可扩展的服务端应用程序。

6.1 简介

6.1.1 核心功能

ServiceStack 提供了以下核心功能:

  • 快速的.NET Web服务框架
  • 支持RESTful API和SOAP服务
  • 强大的数据访问和ORM支持
  • 内置的认证和授权机制
  • 自定义插件和中间件支持
6.1.2 使用场景

ServiceStack 可以广泛应用于企业级应用程序、移动应用后端、IoT 设备通讯和微服务架构中,适用于需要高性能、可扩展性和安全性的场景。

6.2 安装与配置

6.2.1 安装指南

你可以通过NuGet包管理器来安装ServiceStack框架。在Visual Studio中打开NuGet包管理器控制台,并执行以下命令来安装ServiceStack:

Install-Package ServiceStack
6.2.2 基本设置

安装完成后,在Global.asax.cs文件中进行初始化配置:

public class AppHost : AppHostBase
{
    public AppHost() : base("Your App Name", typeof(MyServices).Assembly) { }

    public override void Configure(Container container)
    {
        // 注册服务
        Routes
            .Add<MyRequest>("/myrequest")
            .Add<MyOtherRequest>("/myotherrequest");
    }
}

6.3 API 概览

6.3.1 服务创建

ServiceStack 提供了一种简单的方式来创建服务,只需继承Service类并实现所需的服务方法即可。下面是一个示例:

[Route("/hello/{Name}")]
public class Hello : IReturn<HelloResponse>
{
    public string Name { get; set; }
}

public class HelloResponse
{
    public string Result { get; set; }
}

public class HelloService : Service
{
    public object Any(Hello request)
    {
        return new HelloResponse { Result = "Hello, " + request.Name };
    }
}

在上面的示例中,我们定义了一个简单的“Hello”服务,当请求 /hello/xxx 时返回 Hello, xxx

6.3.2 数据访问

ServiceStack提供了强大的数据访问支持,它集成了多种ORM工具,并提供了自己的OrmLite库来简化数据访问操作。下面是一个使用OrmLite进行查询操作的示例:

var allEmployees = db.Select<Employee>(); // 查询所有的Employee记录
var employee = db.SingleById<Employee>(id); // 根据ID查询Employee记录

更多关于ServiceStack的API和详细文档,请参考官方文档。

总结

本文对Swagger、NSwag、Flurl、Polly、Newtonsoft.Json和ServiceStack这六个库和框架进行了全面而深入的介绍。通过阅读本文,读者可以快速了解这些工具的核心功能、使用场景和安装配置方法,为日后的.NET开发工作提供参考和指导。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2157294.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++之模版的进阶

1.非类型模版参数 模版参数分类类型与非类型形形参 类型形参&#xff1a;出现在模版参数列表中&#xff0c;跟在class或者typename之类的参数类型名称。 非类型形参&#xff1a;用一个常亮作为类&#xff08;函数&#xff09;模版的一个参数&#xff0c;在类&#xff08;函数…

股指期货交割方式是什么?

说起股指期货&#xff0c;这可是个高大上的金融玩意儿。咱们平时买卖股票&#xff0c;那是看准了哪只股就下手&#xff0c;赚了就卖&#xff0c;赔了就扛&#xff0c;挺直接的。但股指期货呢&#xff0c;它玩的是未来的预期&#xff0c;就像是你跟人打赌明天天气好不好&#xf…

Fyne ( go跨平台GUI )中文文档-Fyne总览(二)

本文档注意参考官网(developer.fyne.io/) 编写, 只保留基本用法 go代码展示为Go 1.16 及更高版本, ide为goland2021.2​​​​​​​ 这是一个系列文章&#xff1a; Fyne ( go跨平台GUI )中文文档-入门(一)-CSDN博客 Fyne ( go跨平台GUI )中文文档-Fyne总览(二)-CSDN博客 Fyne…

《python语言程序设计》2018版第8章18题几何circle2D类(中部)

第一、重新分析 第一-1、我设计的第一模式第一-1-1、遇到的逻辑分析迷雾第一-1-2、无畏挣扎后的无奈 第二-1、我就把你们两个放到一起,第二-2、我的想法 当我看到了这个2个园并且比对. 第一-1、我设计的第一模式 设计一个最抽象的Circle2D类. 这个类只包含一个x,y和circle 这个…

Parallels Desktop 20 for Mac 推出:完美兼容 macOS Sequoia 与 Win11 24H2

Parallels Desktop 20 for Mac 近日正式发布&#xff0c;这一新版本不仅全面支持 macOS Sequoia 和 Windows 11 24H2&#xff0c;还在企业版中引入了一个全新的管理门户。新版本针对 Windows、macOS 和 Linux 虚拟机进行了多项改进&#xff0c;其中最引人注目的当属 Parallels …

让模型评估模型:构建双代理RAG评估系统的步骤解析

在当前大语言模型(LLM)应用开发的背景下,一个关键问题是如何评估模型输出的准确性。我们需要确定哪些评估指标能够有效衡量提示(prompt)的效果,以及在多大程度上需要对提示进行优化。 为解决这一问题,我们将介绍一个基于双代理的RAG(检索增强生成)评估系统。该系统使用生成代理…

免费开源的AI 智能网盘,图片和媒体管理工具 | 极空间部署『PicHome』

免费开源的AI 智能网盘&#xff0c;图片和媒体管理工具 | 极空间部署『PicHome』 哈喽小伙伴们好&#xff0c;我是Stark-C~ 想必很多小伙伴儿手机&#xff0c;电脑&#xff0c;甚至是网盘上都存取了大量的各类图片&#xff0c;不知道大家都是怎么管理你手头大量的图片的&…

食探秘:Spring Boot校园周边美食发现平台

第三章 系统设计 3.1 系统概要设计 本校园周边美食探索及分享平台选择B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式。适合在互联网上进行操作&#xff0c;只要用户能连网&#xff0c;任何时间、任何地点都可以进行系统的操作使用。系统工作原理图如图3-1所…

PMP--二模--解题--71-80

文章目录 13.干系人管理--干系人登记册--记录干系人的身份信息、评估信息、干系人分类。识别完干系人更新干系人登记册。71、 [单选] 一名初级项目经理被指派到一个新启动的项目&#xff0c;高级项目经理指示该初级项目经理去识别在项目中享有既得利益的人员。高级项目经理让初…

上半年营收净利双降,债台高筑下扩产能,天合光能“激进”前行?

近年来&#xff0c;随着新能源产业的蓬勃兴起&#xff0c;以及消费端对低碳经济追求的日益增强&#xff0c;再叠加分布式光伏发电系统的快速发展&#xff0c;全球市场对光伏组件的需求量愈发高涨。 而我国目前又是全球最大的光伏组件生产国和出口国&#xff0c;这离不开隆基绿…

桶排序和计数排序(非比较排序算法)

桶排序 桶排序是一种基于分配的排序算法&#xff0c;特别适合用来排序均匀分布的数据。它的基本思想是将输入的数据分到有限数量的桶里&#xff0c;然后对每个桶内的数据分别进行排序&#xff0c;最后再将各个桶内的数据合并得到最终的排序结果。(通常用于浮点数&#xff0c;因…

LLM大模型训练/推理的显卡内存需求计算

无论你是从头开始训练 LLM、对其进行微调还是部署现有模型&#xff0c;选择合适的 GPU 对成本和效率都至关重要。在这篇博客中&#xff0c;我们将详细介绍使用单个和多个 GPU 以及不同的优化器和批处理大小进行 LLM 训练和推理时 GPU 要求的所有信息。 计算机处理器由多个决定…

SM2无证书及隐式证书公钥机制签名和加密过程详解(一)

前面介绍SM2无证书及隐式证书公钥机制下用户公私密钥对的Python实现&#xff08;具体参看SM2隐式证书用户公私钥生成python代码实现_sm2 python 密钥生成-CSDN博客&#xff09;&#xff0c;可以看到需由用户和KGC&#xff08;可信密钥生成中心&#xff09;共同参与才能计算得到…

小程序-基础知识1

Mustache语法 小程序和vue一样提供了插值语法 但是小程序不能调用方法{{xxxx()}} hidden属性 hidden是所有组件都默认拥有的属性&#xff0c; hidden与wx:if的区别&#xff1a; wx:if是控制组件是否渲染,hidden控制显示或隐藏是通过添加hidden属性。 wx:for 除了可以遍历…

服务器配置虚拟环境及离线安装python

本篇文章基于已经装好conda环境进行哈&#xff0c;不会安装conda可参考服务器离线安装anaconda-CSDN博客 1.打印现有虚拟环境列表 conda env list&#xff0c;可以看见我现在有base、ai、py38三个环境 2.删除指定虚拟环境 conda remove -n py38 --all&#xff0c;回车后输入ye…

LeetCode 面试经典150题 190.颠倒二进制位

复习知识&#xff1a;正数的原码、反码、补码相同&#xff0c;负数的反码在其原码的基础上, 符号位不变&#xff0c;其余各个位取反&#xff0c;负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后1 (即在反码的基础上1)。 题目&#xff1a;颠倒给定的 32 位无符号…

全国及分(31个)省全社会就业人数(1978-2022年)

分省就业人数分析 经济发达省份&#xff1a;如广东、江苏、浙江等省份的就业人数较高&#xff0c;这与它们的经济发展水平和产业结构密切相关。欠发达省份&#xff1a;虽然就业人数相对较低&#xff0c;但也呈现出增长态势&#xff0c;显示了国家在区域协调发展上的成效。 从…

软考高级:数据库事务状态区分:活动、部分提交、提交、失败、中止 AI 解读

讲解 数据库事务状态的区分可以用来表示事务在不同阶段的状态。事务&#xff08;Transaction&#xff09;是数据库中的一组操作&#xff0c;要么全部成功&#xff0c;要么全部失败。这些状态可以帮助我们理解事务从开始到结束的整个生命周期。 生活化例子 假设你去餐厅点餐&…

AI资深导师指导-ChatGPT深度科研工作应用、论文撰写、数据分析及机器学习与AI绘图

2022年11月30日&#xff0c;可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT3.5&#xff0c;将人工智能的发展推向了一个新的高度。2023年4月&#xff0c;更强版本的ChatGPT4.0上线&#xff0c;文本、语音、图像等多模态交互方式使其在…

操作系统week3

操作系统学习 三.内存管理 16.内存映射文件 传统的文件访问方式&#xff1a; open系统调用–打开文件seek系统调用–将读写指针移到某个位置read系统调用–从读写指针所指位置读入若干数据write系统调用–将内存中的指定数据&#xff0c;写回磁盘 内存映射文件的访问方式&…