当前位置: 首页 > news >正文

文件系统调用(上) ─── linux第17课

目录

linux 中man 2和man 3的区别

文件内容介绍

C语言文件接口

示例:

输出信息到显示器,你有哪些方法

总结:

系统文件I/O

文件类的系统调用接口介绍

示例

open 函数具体使用哪个,和具体应用场景相关,

write read close lseek ,类比C文件相关接口

open函数返回值

在认识返回值之前,先来认识一下两个概念: 系统调用 和 库函数

文件描述符fd

为什么打开文件myfile.txt的描述符是3不是0?


linux 中man 2和man 3的区别

文件内容介绍

        文件 = 内容+属性.

文件系统

  •         被打开的文件         -------内存中
  •         没有被打开的文件  -------磁盘中

没打开文件之前,文件存储在磁盘, 进程想要访问文件之前 ,要打开文件(也就是将文件加载到内存中)

文件加载到内存中要被OS管理(先描述,再组织)

                                                         也就产生了文件的内核数据结构+文件的内容.(类似进程)

C语言文件接口

示例:

  1 #include<stdio.h>2 #include<string.h>3 #include<errno.h>4 5 int main()6 {7     FILE* fp =fopen("myfile.txt","w+");8     if(!fp) perror("fopen");9 10     int count =6;11     const char* ch ="hello world\n";12     while(count--)13     {14         fwrite(ch ,strlen(ch),1,fp);15     }16     fclose(fp);17     return 0;18 }

进程创建好了,默认先打开了三个输入输出流

  1. stdin   标准输入流       键盘
  2. stdout  标准输出流     显示器
  3. stderr  标准错误流      显示器

仔细观察发现,这三个流的类型都是FILE*, fopen返回值类型,文件指针

输出信息到显示器,你有哪些方法

printf("hello linux\n");const char* ch ="hello linux\n";
fwrite(ch ,strlen(ch), 1 ,stdout);
fpritf(stdout, "hello linux\n");
fputs("aaaa\n" ,stdout);

总结:

打开文件的方式

r     Open text file for reading. The stream is positioned at the beginning of the file.r+    Open for reading and writing.The stream is positioned at the beginning of the file.w     Truncate(缩短) file to zero length or create text file for writing.The stream is positioned at the beginning of the file.w+    Open for reading and writing.The file is created if it does not exist, otherwise it is truncated.The stream is positioned at the beginning of the file.a    Open for appending (writing at end of file). The file is created if it does not exist. The stream is positioned at the end of the file.a+   Open for reading and appending (writing at end of file).The file is created if it does not exist. The initial file position for reading is at the beginning of the file, but output is always appended to the end of the file.

系统文件I/O

前面在讲计算机冯诺依曼体系结构时讲过

  •         OS要确保底层的安全稳定,对于上层开发提供了一些系统调用(system call)接口,用于对硬件的访问(I/O)
  •         而上面C语言的库函数fopen可以打开文件, fwrite可以向文件中写入, 文件在磁盘上,可以推断出,这些C语言中这些文件I/O一定封装了系统调用接口.

文件类的系统调用接口介绍

        open接口可以在linux中输入查询

man 2 open
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);pathname: 要打开或创建的目标文件
flags: 打开文件时,可以传入多个参数选项,用下面的一个或者多个常量进行“或”运算,构成flags。flags的参数:O_RDONLY: 只读打开O_WRONLY: 只写打开O_RDWR : 读,写打开这三个常量,必须指定一个且只能指定一个O_CREAT : 若文件不存在,则创建它。需要使用mode选项,来指明新文件的访问权限O_APPEND: 追加写返回值:成功:新打开的文件描述符失败:-1

flags是位图,  参数:  比如O_RDONLY是32位中只有一个为1的int.

因此,参数之间要用  |  或运算.

        mode_t理解:第三个参数 mode用于指定创建文件时的权限(文件模式)。它仅在创建新文件时生效.

示例:

  1. 创建一个新文件,权限为 0644(用户可读写,组和其他用户只读):

int fd = open("example.txt", O_CREAT | O_WRONLY, 0644);

open 函数具体使用哪个,和具体应用场景相关,

  • 如目标文件不存在,需要三参数的open创建,则第三个参数表示创建文件 的默认权限.
  • 目标文件存在,使用两个参数的open。

write read close lseek ,类比C文件相关接口

系统调用库函数

  • 上面的 fopen fclose fread fwrite 都是C标准库当中的函数,我们称之为库函数(libc)
  • 而, open close read write lseek 都属于系统提供的接口,称之为系统调用接口 回忆一下讲操作系统概念时,画的一张图
  • 也就是C语言的文件接口(fopen fclose fread fwrite ),封装了文件类的系统调用接口(open read write close),方便了二次开发.

文件描述符fd

        通过对open函数的学习,我们知道了open 的返回值是文件描述符, 就是一个小整数

        在上面open示例代码中发现打出来myfile.txt的文件描述符fd=3

为什么打开文件myfile.txt的描述符是3不是0?

        进程启动 ,默认打开三个标准的输入输出流

        因为在打开文件myfile.txt前,就打开了三个文件(stdin stdout stderr),他们的文件描述符分别是0 ,1 ,2

验证: 默认打开三个标准的输入输出流

  1 #include<stdio.h>2 #include<string.h>3 #include<errno.h>4 #include <sys/types.h>5 #include <sys/stat.h>6 #include <fcntl.h>7 8 int main()9 {10     printf("stdin: %d\n", stdin->_fileno);11     printf("stdout: %d\n", stdout->_fileno);12     printf("stderr: %d\n", stderr->_fileno);13 14     int fd1 =open("open.txt" , O_RDWR|O_CREAT , 0666);15     if(fd1 < 0)16     {17         perror("open");18         return 1;19     }20     printf("fd1 =%d\n",fd1);21 22     const char* message ="hello linux\n";23     write(fd1, message, strlen(message));24     close(fd1);25     return 0;}

        (先描述,再组织) 当我们打开文件时,操作系统在内存中要创建相应的数据结构来描述目标文件.

struct file就是文件的属性 ,类似进程的task_struct

一个进程通常打开多个文件,如何让进程与文件关联?

  • 每个进程都有一个指针*files, 指向一张表 files_struct , 该表最重要的部分就是包涵一个指针数组fd_array(文件描述符表),每个元素都是一个指向打开文件的指针!

      所以,本质上,文件描述符就是该数组的下标。所以,只要拿着文件描述符,就可以找到对应的文件

进程的task_struct中有 file_struct的指针

file_struct中有指针数组fd_array(文件描述符表)

        OS想要管理进程创建了进程管理列表,文件同理,创建了文件管理列表(也是双链表)

        内核中,让进程和文件之间产生关联的是文件描述符表, 左边是进程,右面是文件 ,通过文件描述符表进行解耦合

如图所示:左面是进程管理,右侧是文件管理

相关文章:

文件系统调用(上) ─── linux第17课

目录 linux 中man 2和man 3的区别 文件内容介绍 C语言文件接口 示例: 输出信息到显示器&#xff0c;你有哪些方法 总结: 系统文件I/O 文件类的系统调用接口介绍 示例 open 函数具体使用哪个,和具体应用场景相关&#xff0c; write read close lseek ,类比C文件相关接…...

在 Spring Boot 中实现基于 TraceId 的日志链路追踪

1 前言 1.1 什么是 TraceId? TraceId 是一个唯一的标识符,用于跟踪分布式系统中的请求。每个请求从客户端发起到服务端处理,再到可能的多个微服务调用,都会携带这个 TraceId,以便在整个请求链路中进行追踪和调试。 1.2 日志链路追踪的意义 日志链路追踪可以帮助开发者…...

STM32 HAL库 CAN过滤器配置

之前在STM32 f407 CAN收发 基于HAL库和Cubemx配置_stm32f407can收发程序-CSDN博客这篇博文里写了一下配置CAN收发的方法&#xff0c;当时由于并没有使用过滤器的现实需求&#xff0c;所以就也没仔细研究。现在工作中确实需要用到过滤器了&#xff0c;有些项目中控制器和发动机E…...

C++ 控制结构与函数全面解析

引言 在 C 编程中&#xff0c;控制结构和函数是构建程序逻辑的关键要素。控制结构能够决定程序的执行流程&#xff0c;而函数则可以将代码模块化&#xff0c;提高代码的复用性和可维护性。本文将深入介绍 C 中的控制结构和函数的相关知识。 一、控制结构 1. if - else 语句 …...

基于django+pytorch(Faster R-CNN)的钢材缺陷识别系统

一、训练数据来源以及数据标注 数据来源于阿里云天池实验室公开数据集中的铝型材缺陷检测数据集APDDD 数据标注通过labelme进行标注&#xff0c;图片所有标注以转化为矩形标注&#xff0c;存放成json格式。 二、模型训练方式及结果 缺陷识别模型基于Faster R-CNN ResNet5…...

C++多态

多态 多态分为:静态多态(函数重载,运算符重载)和动态多态(派生类、虚函数) 二者区别:静态多态是在地址编译时绑定,而动态多态是在地址运行时绑定 动态多态的特点: 1.有继承关系 2.子类重写父类虚函数(就是跟父类行为函数名称一样&#xff0c;但是是作为子类的行为) 动态多态的…...

【一句话经验】ubuntu vi/vim 模式自动设置为paste

从centos过来&#xff0c;发现ubutun有些地方不习惯&#xff0c;尤其是vi的粘贴&#xff0c;默认自动进去了代码模式&#xff0c;导致每次粘贴必须得set paste&#xff0c;否则会出现问题。 解决办法非常简单&#xff0c;按照下面命令执行即可&#xff1a; cd ~ echo "…...

MongoDB 触发器实现教程

在传统的关系型数据库&#xff08;如 MySQL&#xff09;中&#xff0c;触发器是一种强大的工具&#xff0c;它可以在特定的数据库操作&#xff08;如插入、更新或删除&#xff09;发生时自动执行一段代码。然而&#xff0c;MongoDB 并没有原生内置的触发器概念。不过&#xff0…...

ESP8266 NodeMCU 与 Atmega16 微控制器连接以发送电子邮件

NodeMCU ESP8266 AVR 微控制器 ATmega16 的接口 Atmega16 是一款低成本的 8 位微控制器,比以前版本的微控制器具有更多的 GPIO。它具有所有常用的通信协议,如 UART、USART、SPI 和 I2C。由于其广泛的社区支持和简单性,它在机器人、汽车和自动化行业有广泛的应用。 Atmega1…...

《算法笔记》8.1小节——搜索专题->深度优先搜索(DFS)问题 C: 【递归入门】组合+判断素数

题目描述 已知 n 个整数b1,b2,…,bn 以及一个整数 k&#xff08;k&#xff1c;n&#xff09;。 从 n 个整数中任选 k 个整数相加&#xff0c;可分别得到一系列的和。 例如当 n4&#xff0c;k&#xff1d;3&#xff0c;4 个整数分别为 3&#xff0c;7&#xff0c;12&#xf…...

重生之我在学Vue--第8天 Vue 3 UI 框架(Element Plus)

重生之我在学Vue–第8天 Vue 3 UI 框架&#xff08;Element Plus&#xff09; 文章目录 重生之我在学Vue--第8天 Vue 3 UI 框架&#xff08;Element Plus&#xff09;前言一、Element Plus 基础&#xff1a;从安装到组件革命1.1 安装与两种引入模式全量引入&#xff08;适合快速…...

从前端视角理解消息队列:核心问题与实战指南

消息队列&#xff08;Message Queue&#xff09;是现代分布式系统的核心组件之一&#xff0c;它在前后端协作、系统解耦、流量削峰等场景中发挥着重要作用。本文从前端开发者视角出发&#xff0c;解析消息队列的关键问题&#xff0c;并结合实际场景给出解决方案。 一、为什么要…...

Mysql配置文件My.cnf(my.ini)配置参数说明

一、my.cnf 配置文件路径&#xff1a;/etc/my.cnf&#xff0c;在调整了该文件内容后&#xff0c;需要重启mysql才可生效。 1、主要参数 basedir path # 使用给定目录作为根目录(安装目录)。 datadir path # 从给定目录读取数据库文件。 pid-file filename # 为mysq…...

Docker 安装成功后,安装 Dify 中文版本的步骤

Docker 安装成功后&#xff0c;安装 Dify 中文版本的步骤如下1&#xff1a; 克隆 Dify 代码仓库&#xff1a;在终端中执行以下命令&#xff0c;将 Dify 源代码克隆至本地环境。 bash git clone https://github.com/langgenius/dify.git进入 Dify 的 docker 目录&#xff1a; b…...

Spring(4)——响应相关

一、返回静态页面 1.1**RestController和Controller** 想返回如下页面&#xff1a; 如果我们依旧使用原来的**RestController** 可以看到的是仅仅返回了字符串。 此时将**RestController改为Controller** 可以看到这次返回的是html页面。 那么**RestController和Controller…...

LPDDR5x电源使用Si电容对PI和PSIJ影响分析

SoC可能包含许多高速接口&#xff0c;其中LPDDR5X目前因为高带宽、低功耗、大容量等性能优势开始逐渐在AI计算、5G通信、视频处理等领域开始使用。LPDDR5X目前的速率高达8.533 GT/s&#xff0c;以及多个为这些接口供电的IO电压轨&#xff0c;而这些IO轨的PDN需要提供低阻抗&…...

[网络爬虫] 动态网页抓取 — Selenium 介绍 环境配置

&#x1f31f;想系统化学习爬虫技术&#xff1f;看看这个&#xff1a;[数据抓取] Python 网络爬虫 - 学习手册-CSDN博客 0x01&#xff1a;Selenium 工具介绍 Selenium 是一个开源的便携式自动化测试工具。它最初是为网站自动化测试而开发的&#xff0c;类似于我们玩游戏用的按…...

MySQL数据库操作

目录 SQL语句 1、SQL的背景 2、SQL的概念 SQL的分类 SQL的书写规范 MySQL数据库 1、MySQL数据库的编码 &#xff08;1&#xff09;utf8和utf8mb4的区别 &#xff08;2&#xff09;MySQL的字符集 &#xff08;3&#xff09;MySQL默认编码为 latin1 &#xff0c;如何更改…...

java之uniapp实现门店地图

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、后台实现1. 获取门店的经纬度2.api查询对应的sql 二 、小程序实现 前言 实现查询门店地址的功能&#xff0c;可以按照距离排序。使用技术&#xff1a;java…...

Git基本概念及使用

目录 一、git安装 二、git仓库基本概念 1. 远程仓库&#xff08;Remote&#xff09;&#xff1a; 2. 本地库&#xff08;Repository&#xff09;&#xff1a; 3. 分支&#xff08;Branch&#xff09;&#xff1a; 4.本地库和远程库的关系 三、git仓库的工作流程 四、gi…...

游戏引擎学习第147天

仓库:https://gitee.com/mrxiao_com/2d_game_3 上一集回顾 具体来说&#xff0c;我们通过隐式计算来解决问题&#xff0c;而不是像数字微分分析器那样逐步增加数据。我们已经涵盖了这个部分&#xff0c;并计划继续处理音量问题。不过&#xff0c;实际上我们现在不需要继续处理…...

docker私有仓库配置

基于 harbor 构建docker私有仓库 1、机器准备 os&#xff1a;openEuler 、rockylinux mem&#xff1a;4G disk&#xff1a;100G 2、关闭防火墙、禁用SELinux 3、安装docker和docker-compose yum install docker-ce -y配置加速 vim /etc/docker/d…...

PostgreSQL 18新特性之虚拟生成列

PostgreSQL 12 提供了生成列&#xff08;GENERATED ALWAYS AS STORED&#xff09;功能&#xff0c;但是只能支持存储型的生成列&#xff0c;需要占用存储空间&#xff0c;更新成本高。 为此&#xff0c;PostgreSQL 18 即将引入一个新的增强&#xff1a;虚拟生成列。这种类型的…...

燃气对我们生活的重要性体现在哪里?

燃气在我们的生活中有 多方面的重要性 &#xff0c;以下是燃气对我们生活的重要性的详细说明&#xff1a; 烹饪和热水供应 &#xff1a; 燃气是家庭烹饪的主要能源&#xff0c;能够快速、高效地加热食物&#xff0c;使家庭聚餐更加便捷和愉快。 燃气热水器能够在短时间内提供…...

简易分析 uni.chooseImage 拍照上传的基本知识点(附Demo)

目录 前言1. 基本知识2. Demo 前言 &#x1f91f; 找工作&#xff0c;来万码优才&#xff1a;&#x1f449; #小程序://万码优才/r6rqmzDaXpYkJZF 基本的介绍也可看官网&#xff1a;uni.chooseImage(options) 以下知识点主要用于学习了解&#xff0c;从实战中出发 1. 基本知识…...

私域流量时代的创新实践:以定制开发开源AI智能名片与S2B2C商城小程序源码为例的深度研究

摘要&#xff1a;在数字化转型的浪潮中&#xff0c;私域流量已成为企业获取用户、增强品牌影响力及实现销售转化的关键路径。本文首先概述了私域流量的概念及其重要性&#xff0c;随后通过分析故宫文创、B站跨年晚会及美妆品牌“完美日记”的成功案例&#xff0c;深入探讨了私域…...

preloaded-classes裁剪

系统预加载了哪些class类&#xff1f;system/etc/preloaded-classes 修改源代码&#xff1f; frameworks\base\config\preloaded-classes 默认位置&#xff0c;如果改了不生效&#xff0c;可能有其它模块的mk文件指定了preloaded-classes覆盖了framework模块&#xff0c;例如…...

JavaScript性能优化实战

在 JavaScript 开发中&#xff0c;性能优化是一个至关重要的方面&#xff0c;它可以提升应用的响应速度、减少资源消耗&#xff0c;从而提供更好的用户体验。以下是从多个方面进行 JavaScript 性能优化的详细实战内容&#xff1a; 1. 代码加载优化 1.1 异步加载脚本 使用 as…...

文件和异常

从文件中读取数据 读取整个文件 读取整个文件 要读取文件&#xff0c;需要一个包含几行文本的文件。下面首先创建一个文件&#xff0c;它包含精确 到小数点后30位的圆周率值&#xff0c;且在小数点后每10位处换行&#xff1a; pi_digits.txt 3.14159265358979323846264338…...

【AI大模型】LLM训练deepseek如何识别视频

要让像DeepSeek这样的大语言模型&#xff08;LLM&#xff09;具备视频识别能力&#xff0c;需要结合多模态学习技术&#xff0c;将视觉信息与文本语义进行融合。以下是实现这一目标的关键步骤和技术要点&#xff1a; --- 一、视频识别的核心挑战 1. 多模态数据&#xff1a;视频…...

【机械视觉】C#+VisionPro联合编程———【五、硬币检测小项目实现(C#+VisionPro联合编程和csv文件格式操作)】

【机械视觉】C#VisionPro联合编程———【五、硬币检测小项目实现(C#VisionPro联合编程和csv文件格式操作)】 项目介绍 总共有十二张检测的图片&#xff0c;当点击检测按钮时检测当前展示的图片并且将检测效果展示在表格中&#xff0c;当点击上一页或下一页时换检测图片&…...

空间域与频域图像处理

第一部分&#xff1a;空间域图像处理&#xff08;Part 1&#xff09; 1. 点操作&#xff08;Pixel-wise Operations&#xff09; 定义&#xff1a;仅基于单个像素的灰度值进行变换&#xff0c;不依赖邻域信息。 常见操作&#xff1a; 2. 邻域操作&#xff08;Neighborhood O…...

使用DeepSeek+蓝耘快速设计网页简易版《我的世界》小游戏

前言&#xff1a;如今&#xff0c;借助先进的人工智能模型与便捷的云平台&#xff0c;即便是新手开发者&#xff0c;也能开启创意游戏的设计之旅。DeepSeek 作为前沿的人工智能模型&#xff0c;具备强大的功能与潜力&#xff0c;而蓝耘智算云平台则为其提供了稳定高效的运行环境…...

使用 React 和 Ant Design 处理 Excel 和 CSV 文件

在现代 Web 开发中&#xff0c;文件上传和解析是常见的需求。本文将介绍如何使用 React 和 Ant Design 库来处理 Excel 和 CSV 文件的上传&#xff0c;并将提取的表头信息展示在表格中。 1. 项目基础 确保你已经创建了一个 React 项目&#xff0c;并安装了必要的依赖。可以使…...

js 使用 Web Workers 来实现一个精确的倒计时,即使ios手机锁屏或页面进入后台,倒计时也不会暂停。

## 效果如上 <!-- 将 main.js 和 worker.js 放在同一个目录下&#xff0c;然后在 HTML 文件中引入 main.js --><!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content&q…...

Java中的常用关键字

目录 static关键字 &#xff08;1&#xff09;static修饰成员变量 &#xff08;2&#xff09;static修饰成员方法 super和this关键字 super关键字 示例1&#xff1a;使用super调用父类的构造器 示例2&#xff1a;使用super访问父类的方法 示例3&#xff1a;使用super访问…...

pytest数据库测试文章推荐

参考链接&#xff1a; 第一部分&#xff1a;http://alextechrants.blogspot.fi/2013/08/unit-testing-sqlalchemy-apps.html第二部分&#xff1a;http://alextechrants.blogspot.fi/2014/01/unit-testing-sqlalchemy-apps-part-2.html...

ubuntu20.04 使用linuxdeployqt打包一个QT程序

问题描述:ubuntu 打包一个QT程序 解决方法&#xff1a; 1.安装linuxdeployqt linuxdeployqt的github网址&#xff1a;linuxdeplyoqt 我下载好了&#xff0c;适合大家的直接拿&#xff0c;已经改好名字为linuxdeployqt 链接: https://pan.baidu.com/s/1r25aVwRAh-sx4ksadj6…...

⭐算法OJ⭐经典题目分类索引(持续更新)

在编程竞赛和算法学习中&#xff0c;Online Judge&#xff08;OJ&#xff09;平台是程序员们磨练技能的重要工具。OJ平台上的题目种类繁多&#xff0c;涵盖了从基础数据结构到复杂算法的各个方面。为了更好地理解和掌握这些题目&#xff0c;对其进行分类是非常有必要的。这篇索…...

Redis-缓存穿透击穿雪崩

1. 穿透问题 缓存穿透问题就是查询不存在的数据。在缓存穿透中&#xff0c;先查缓存&#xff0c;缓存没有数据&#xff0c;就会请求到数据库上&#xff0c;导致数据库压力剧增。 解决方法&#xff1a; 给不存在的key加上空值&#xff0c;防止每次都会请求到数据库。布隆过滤器…...

mac使用Homebrew安装miniconda(mac搭建python环境),并在IDEA中集成miniconda环境

一、安装Homebrew mac安装brew 二、使用Homebrew安装miniconda brew search condabrew install miniconda安装完成后的截图&#xff1a; # 查看是否安装成功 brew list环境变量&#xff08;无需手动配置&#xff09; 先执行命令看能不能正常返回&#xff0c;如果不能正常…...

tomcat应用的作用以及安装,以及tomcat软件的开机自启动。

一.tomcat介绍 1.作用 tomcat是一款用来部署网站服务器的一款软件。 动态网站主流语言&#xff1a; PHP, lamp/lnmp平台 Java语言&#xff0c;运行在tomcat平台。【只要这个网站或者软件是Java语言写的&#xff0c;我们都可以在tomcat平台上去运行这个java程序。】 网站是…...

Javascript基础语法详解

面向对象的语言.脚本语言,不需要编译,浏览器解释即可运行 .用于控制网页的行为.浏览器的source可以打断点调试, console输入代码可以执行 use strict指令: 在“严格模式”下运行js代码, 防止意外创建全局变量等, 提高代码安全性和执行效率. 使用: 全局严格模式&#xff1a;…...

网络编程(师从韩顺平)

文章目录 续写前面没有提到的内容自定义线程JVM,JDK,JREJava 核心机制-Java 虚拟机 [JVM java virtual machine]JDKJREJDK、JRE 和 JVM 的包含关系 Java 技术体系平台 网络的相关概念网络通信网络Ip 地址ipv4 地址分类域名网络通信协议TCP 和 UDP InetAddress 类相关方法应用案…...

HTML嵌入CSS样式超详解(尊享)

一、行内样式&#xff08;Inline CSS&#xff09; 1. 定义与语法 行内样式是直接在HTML标签中使用style属性来定义样式。这种方式只对当前标签生效。 <tagname style"css 样式">2. 示例 <p style"color: red; font-size: 14px;">这是一个红…...

AI开源竞赛与硬件革命:2025年3月科技热点全景解读——阿里、腾讯领跑开源,英特尔、台积电重塑算力格局

目录 开源生态&#xff1a;阿里与腾讯的“技术对决” 1. 阿里云QwQ-32B&#xff1a;小参数撬动大性能的技术革命 2. 腾讯混元&#xff1a;视频创作的普惠化尝试 AI硬件与算力&#xff1a;全球供应链的“新战场” 1. 英特尔商用AI PC&#xff1a;端侧算力突围 2. 台积电千…...

无头浏览器与请求签名技术-Cloudflare防护

在实际数据采集实践中&#xff0c;许多目标网站&#xff08;例如 Amazon&#xff09;都会采用 Cloudflare 等防护措施&#xff0c;防止机器人和非正常流量。本文将分享一个故障场景下的排查与改进方案&#xff0c;讲述如何利用无头浏览器、请求签名技术以及爬虫代理 IP来实现数…...

6.聊天室环境安装 - Ubuntu22.04 - elasticsearch(es)的安装和使用

目录 介绍安装安装kibana安装ES客户端使用 介绍 Elasticsearch&#xff0c; 简称 ES&#xff0c;它是个开源分布式搜索引擎&#xff0c;它的特点有&#xff1a;分布式&#xff0c;零配置&#xff0c;自动发现&#xff0c;索引自动分片&#xff0c;索引副本机制&#xff0c;res…...

【NexLM 开源系列】让 AI 聊天更丝滑:SSE 实现流式对话!

&#x1f31f; 在这系列文章中&#xff0c;我们将一起探索如何搭建一个支持大模型集成项目 NexLM 的开发过程&#xff0c;从 架构设计 到 代码实战&#xff0c;逐步搭建一个支持 多种大模型&#xff08;GPT-4、DeepSeek 等&#xff09; 的 一站式大模型集成与管理平台&#xff…...

具备多种功能的PDF文件处理工具

软件介绍 在日常办公和学习场景中&#xff0c;PDF文件使用极为频繁&#xff0c;而一款功能强大的PDF编辑软件能大幅提升处理效率。 今天要介绍的Adobe Acrobat Pro DC 2024.005.20414&#xff0c;就具备像编辑Word文档一样便捷编辑PDF的能力。 PDF文档在学习和工作中广泛应用…...