【图书推荐】《Linux C与C++一线开发实践(第2版)》

本书重点

主要讲解开发环境搭建、C/C++语言基础、文件编程、多进程、Web编程、多线程、库、TCP/IP协议、套接字、并发聊天服务器项目实战。适合选择Linux系统开发方向的开发人员,打下Linux开发的牢固基础。

Linux开发方向比较固定,知识和技能更新没有Web技术那么快,相对来说做起来不会那么累。干到了资深,收入还是很可观的。

内容简介

Linux C/C++编程在Linux应用程序开发中占有重要的地位,掌握这项技术将在就业竞争中立于不败之地。本书内容针对初中级读者,贴近软件公司一线开发实践。全书厚达620多页,知识点丰富,内容翔实,并配套示例源码、作者QQ群答疑服务。

本书共分为16章,内容包括Linux概述、搭建开发环境、C++语言基础、Linux文件编程、多进程编程、进程间通信、C++ Web编程、多线程基本编程、多线程高级编程、Linux下的库、TCP/IP基础、套接字基础、TCP套接字网络编程、UDP套接字网络编程、原始套接字网络编程,以及并发聊天服务器项目实战等。

适合读者

本书适合想全面学习Linux环境下C/C++语言编程的读者,既可作为初中级开发人员的案头查阅与参考手册,也适合作为高等院校或高职高专相关课程的教学参考书。

作者简介

朱文伟,名校计算机专业统招硕士,20多年C\C++、Java开发经验。主导开发过密码、图形、人工智能等产品。精通Linux、Windows系统开发及数据库开发技术。著有图书:
《Rust编程与项目实战》《嵌入式Linux驱动开发实践》《高性能Linux网络编程核心技术揭秘》《Linux C/C++服务器开发实践》《Qt 6.x从入门到精通》《PyQt 5从入门到精通》《Linux C与C++ 一线开发实践》《Visual C++2017从入门到精通》《Windows C/C++加密解密实战》《密码学原理与Java实现》《OpenCV 4.5计算机视觉开发实战(基于VC++)》《OpenCV 4.5计算机视觉开发实战:基于Python》。

前言

这是一本Linux下C/C++入门的经典图书,为何说经典呢?因为本书第一版大卖。任何立志成为一名Linux开发工程师的人,都可以从本书起步。本书篇幅虽然有点大,厚达620多页,但内容通俗易懂,由浅入深,并且实例丰富、步骤详细、注释充分,相信读者都能看得懂。对于中高级开发人员,也可以通过本书快速上手Linux C/C++的实际开发。

本书假设读者没有接触过C/C++编程和Linux系统开发,也不堆砌术语,不介绍艰深和晦涩的概念,不触及冷门领域,从搭建当前企业最流行的Linux开发工具开始,然后介绍C/C++语言,再逐步展开各应用的编程。因此,书中都是实实在在的Linux编程“干货”。此外,本书的一大特点是实例丰富,读者应该知道,编程开发仅仅了解理论是不够的,只有自己上机调试运行实例,才能深刻理解编程,尤其是C/C++编程。另外,考虑到初学者情况,每个实例步骤都描述得非常详细,并且从建立工程到运行工程都有着详细的说明。最后,本书所有例子都在Ubuntu上用VS Code/gcc/g++编译通过。

本书在讲述基本编程的同时,也讲述了很多一线实践开发中经常会碰到的问题和解决方案,可以说本书是紧贴工业界的图书。希望读者能够通过本书的学习打好Linux开发的基础,早日成为Linux C/C++开发高手。

升级的内容

本书第1版热销多年,但Linux操作系统、开发软件在这几年已经有了新变化,加上读者对本书使用的反馈,本版升级做了以下修改:

(1)修改错误。读者反馈了一些书中的低级错误或瑕疵,笔者平时除了在本书技术交流QQ群中一一回复之外,也在本版中改正了这些错误和瑕疵。

(2)增加内容。原书所采用的操作系统是CentOS 7,本版移植到新的操作系统Ubuntu上。Linux下的应用软件开发环境目前有了更加方便且高效的工具和使用方法。

(3)删除内容。去掉“vi编辑器”的介绍,现在业界在做大型项目开发的时候已经没人使用它了。去掉“C++跨平台开发”一章,这一章内容偏向抽象的理论,不符合笔者的风格—贴近实战,实例要多。去掉“版本管理SVN”一章,这一章和编程本身没多大关系,需要的时候上网查看相关博客就能学会。去掉“Linux安全编程”一章,以降低学习难度。

本版改动是不小的,但也都是Linux业界编程所需要的。

本书示例源代码下载

本书配套示例源代码、作者QQ群技术交流服务。

技术支持与鸣谢

虽然编者尽了最大努力,但是书中难免会出现一些疏漏,希望读者不吝指正。

这里要感谢清华大学出版社的老师们,他们辛勤的工作使得本书得以顺利出版。

编  者

2024年3月

目录

目    录
第1章  Linux概述 1
1.1  什么是Linux 1
1.2  Linux的简史 2
1.3  Linux和Windows的比较 4
1.4  Linux主要应用领域 4
1.5  Linux的版本 5
1.6  使用哪个版本的Linux进行学习 5
1.7  Linux的特点 6
1.8  如何学习Linux 6
1.9  命令行还是图形界面 7
1.10  计算机启动的基本过程 7
1.10.1  按下电源 7
1.10.2  BIOS自检 7
1.10.3  系统引导 9
1.10.4  启动内核 10
1.11  认识Shell 11
1.12  图形界面和字符界面的切换 11
1.12.1  在不退出X-Window的情况下切换到字符界面 11
1.12.2  强行退出X-Window进入文本模式 12
1.12.3  设置每次开机进入字符界面 12
1.12.4  从字符界面进入图形界面 13
1.13  环境变量 14
第2章  搭建Linux C/C++开发环境 15
2.1  安装和配置虚拟机Linux 15
2.1.1  在VMware下安装Linux 15
2.1.2  开启登录时的root账号 18
2.1.3  配置Linux虚拟机环境 20
2.1.4  配置Linux虚拟机网络 24
2.1.5  通过终端工具连接Linux虚拟机 33
2.1.6  和虚拟机互传文件 36
2.2  gcc/g++编译器的使用 37
2.2.1  安装C/C++编译工具 37
2.2.2  gcc对C语言的编译过程 37
2.2.3  gcc所支持的后缀名文件 41
2.2.4  gcc的语法格式 42
2.2.5  gcc常见选项 44
2.2.6  g++的基本使用 54
2.3  搭建集成式开发环境 55
2.3.1  基于Visual C++ 2017搭建IDE 56
2.3.2  基于Visual Studio Code搭建IDE 59
2.4  搭建非集成式开发环境 70
2.4.1  基于Visual Studio Code编辑和上传源码 70
2.4.2  为何要学gdb调试器 74
2.4.3  gdb简介 74
2.4.4  重要准备 74
2.4.5  启动gdb 75
2.4.6  退出gdb 75
2.4.7  gdb的常用命令概述 76
2.4.8  file命令加载程序 77
2.4.9  list命令显示源码 77
2.4.10  run命令运行程序 80
2.4.11  break命令设置断点 82
第3章  C++语言基础 85
3.1  C++基础知识 85
3.1.1  C++程序结构 85
3.1.2  注释 88
3.1.3  变量和数据类型 88
3.1.4  标识 89
3.1.5  基本数据类型 89
3.1.6  变量的定义和C++11中的auto 90
3.1.7  变量的范围 93
3.1.8  变量初始化 94
3.1.9  常量 95
3.1.10  操作符/运算符 99
3.1.11  控制台交互 106
3.2  控制结构 110
3.2.1  条件结构 111
3.2.2  循环结构 112
3.2.3  分支控制和跳转 115
3.2.4  选择结构语句switch 116
3.3  函数 118
3.4  函数高级话题 122
3.4.1  参数按数值传递和按地址传递 122
3.4.2  函数参数默认值 124
3.4.3  函数重载 125
3.4.4  内联函数 125
3.4.5  递归 126
3.4.6  函数的声明 127
3.5  高级数据类型 128
3.5.1  数组 128
3.5.2  指针 138
3.5.3  动态分配内存 148
3.5.4  结构体 151
3.5.5  自定义数据类型 157
3.6  面向对象编程 160
3.6.1  类 160
3.6.2  构造函数和析构函数 163
3.6.3  构造函数重载 165
3.6.4  类的指针 167
3.6.5  由关键字struct和union定义的类 168
3.6.6  操作符重载 168
3.6.7  关键字this 171
3.6.8  静态成员 172
3.6.9  类之间的关系 173
3.6.10  多态 180
3.7  C++面向对象小结 186
3.8  C++高级知识 190
3.8.1  模板 190
3.8.2  命名空间 196
3.8.3  异常处理 200
3.8.4  预处理指令 203
3.8.5  预定义宏 206
3.8.6  C++11中的预定义宏 207
3.9  字符串 209
3.9.1  字符串基础 209
3.9.2  搜索与查找 217
3.10  再论异常处理 225
3.10.1  基本概念 225
3.10.2  抛出异常 225
3.10.3  捕获异常 226
3.10.4  C++标准异常 227
3.10.5  定义新的异常 227
3.11  再论函数模板 228
3.12  字符集 230
3.12.1  计算机上的3种字符集 230
3.12.2  查看Linux系统的字符集 232
3.12.3  修改Linux系统的字符集 233
3.12.4  Unicode编码的实现 233
3.12.5  C运行时库对Unicode的支持 238
3.12.6  C++标准库对Unicode的支持 238
3.12.7  字符集相关实例 239
第4章  Linux文件编程 240
4.1  文件系统及层次结构标准 240
4.2  文件的属性信息 241
4.3  i节点 242
4.3.1  基本概念 242
4.3.2  i节点的内容 242
4.3.3  i节点的使用状况 244
4.4  文件类型 246
4.4.1  普通文件 246
4.4.2  目录 247
4.4.3  块设备文件 248
4.4.4  字符设备文件 249
4.4.5  链接文件 249
4.5  文件权限 251
4.6  Linux文件I/O编程的基本方式 252
4.7  什么是I/O 252
4.8  Linux系统调用下的文件I/O编程 252
4.8.1  文件描述符 252
4.8.2  打开或创建文件 253
4.8.3  创建文件 255
4.8.4  关闭文件 256
4.8.5  读取文件中的数据 257
4.8.6  向文件写入数据 259
4.8.7  设定文件偏移量 260
4.8.8  获取文件状态 262
4.8.9  文件锁定 263
4.8.10  建立文件和内存映射 267
4.8.11  mmap和shm对比 270
4.9  C++方式下的文件I/O编程 271
4.9.1  流的概念 271
4.9.2  流的类库 271
4.9.3  打开文件 272
4.9.4  关闭文件 274
4.9.5  写入文件 274
4.9.6  读取文件 274
4.9.7  文件位置指针 276
4.9.8  状态标志符的验证 278
4.9.9  读写文件数据块 279
4.10  文件编程中的其他操作 281
4.10.1  获取文件有关信息 281
4.10.2  创建和删除文件目录项 283
第5章  多进程编程 286
5.1  进程的基本概念 286
5.2  进程的描述 287
5.2.1  进程的标识符 289
5.2.2  PID文件 291
5.3  进程的创建 294
5.3.1  使用fork创建进程 294
5.3.2  使用exec创建进程 295
5.3.3  使用system创建进程 301
5.4  进程调度 302
5.5  进程的分类 305
5.5.1  前台进程 305
5.5.2  后台进程 305
5.6  守护进程 306
5.6.1  守护进程的概念 306
5.6.2  守护进程的特点 307
5.6.3  查看守护进程 307
5.6.4  守护进程的分类 308
5.6.5  守护进程的常用启动方式 309
5.6.6  编写守护进程的步骤 309
第6章  Linux进程间的通信 312
6.1  信号 312
6.1.1  信号的基本概念 312
6.1.2  与信号相关的系统调用 317
6.2  管道 325
6.2.1  管道的基本概念 325
6.2.2  管道读写的特点 325
6.2.3  管道的局限性 326
6.2.4  创建管道函数pipe 326
6.2.5  读写管道函数read/write 326
6.2.6  等待子进程中断或结束的函数wait 327
6.2.7  使用管道的特殊情况 330
6.3  消息队列 330
6.3.1  创建和打开消息队列函数msgget 331
6.3.2  获取和设置消息队列的属性函数msgctl 332
6.3.3  将消息送入消息队列的函数msgsnd 333
6.3.4  从消息队列中读取一条新消息的函数msgrcv 333
6.3.5  生成键值函数ftok 334
第7章  C++ Web编程 342
7.1  CGI程序的工作方式 342
7.2  架设Web服务器Apache 343
第8章  多线程基本编程 346
8.1  使用多线程的好处 346
8.2  多线程编程的基本概念 347
8.2.1  操作系统和多线程 347
8.2.2  线程的基本概念 348
8.2.3  线程的状态 348
8.2.4  线程函数 349
8.2.5  线程标识 349
8.2.6  C++多线程开发的两种方式 349
8.3  利用POSIX多线程API函数进行多线程开发 350
8.3.1  线程的创建 350
8.3.2  线程的属性 355
8.3.3  线程的结束 366
8.3.4  线程退出时的清理机会 374
8.4  C++11中的线程类 379
8.4.1  线程的创建 380
8.4.2  线程的标识符 387
8.4.3  当前线程this_thread 388
第9章  多线程高级编程 393
9.1  多线程的同步和异步 393
9.2  线程同步 393
9.3  利用POSIX多线程API函数进行线程同步 398
9.3.1  互斥锁 398
9.3.2  读写锁 404
9.3.3  条件变量 411
9.4  C++11/14中的线程同步 417
9.5  线程池 421
9.5.1  线程池的定义 421
9.5.2  使用线程池的原因 421
9.5.3  用C++实现一个简单的线程池 422
第10章  Linux下的库 428
10.1  库的基本概念 428
10.2  库的分类 428
10.3  静态库 429
10.3.1  静态库的基本概念 429
10.3.2  静态库的创建和使用 429
10.4  动态库 432
10.4.1  动态库的基本概念 432
10.4.2  动态库的创建和使用 432
第11章  TCP/IP基础 437
11.1  什么是TCP/IP 437
11.2  TCP/IP的分层结构 437
11.3  应用层 441
11.3.1  DNS 441
11.3.2  端口的概念 442
11.4  传输层 442
11.4.1  TCP 442
11.4.2  UDP 443
11.5  网络层 443
11.5.1  IP 443
11.5.2  ARP 449
11.5.3  RARP 451
11.5.4  ICMP 452
11.6  数据链路层 459
11.6.1  数据链路层的基本概念 459
11.6.2  数据链路层的主要功能 460
第12章  套接字基础 462
12.1  网络程序的架构 463
12.2  套接字的类型 464
12.3  套接字的地址结构 464
12.4  主机字节序和网络字节序 465
12.5  出错信息的获取 467
第13章  TCP套接字编程 469
13.1  TCP套接字编程的基本步骤 469
13.2  协议簇和地址簇 470
13.3  socket地址 473
13.3.1  通用socket地址 473
13.3.2  专用socket地址 474
13.3.3  IP地址的转换 475
13.4  TCP套接字编程的相关函数 477
13.4.1  socket函数 477
13.4.2  bind函数 477
13.4.3  listen函数 480
13.4.4  accept函数 480
13.4.5  connect函数 480
13.4.6  write函数 483
13.4.7  read函数 484
13.4.8  send函数 484
13.4.9  recv函数 484
13.4.10  close函数 485
13.4.11  获得套接字地址 485
13.4.12  获得主机名称和主机信息 487
13.4.13  阻塞套接字的使用 489
13.4.14  非阻塞套接字的使用 496
第14章  UDP套接字编程 509
14.1  UDP套接字编程的基本步骤 509
14.2  UDP套接字编程的相关函数 510
14.2.1  消息发送函数sendto和sendmsg 510
14.2.2  消息接收函数recvfrom和recvmsg 512
14.3  实战UDP套接字 513
14.4  UDP丢包及无序问题 522
第15章  原始套接字编程 523
15.1  原始套接字概述 523
15.2  与标准套接字的区别 523
15.3  原始套接字的编程方法 524
15.4  面向链路层的原始套接字编程函数 524
15.4.1  创建原始套接字函数socket 524
15.4.2  接收函数recvfrom 525
15.4.3  发送函数sendto 526
15.5  以太网帧格式 529
15.6  获取网络接口的信息 530
15.7  实战链路层的原始套接字 534
15.7.1  常见的应用场景 534
15.7.2  混杂模式 560
15.7.3  链路层原始套接字开发注意事项 579
15.8  面向IP层的原始套接字编程 580
第16章  并发聊天服务器项目实战 588
16.1  系统平台的选择 588
16.1.1  应用系统平台模式的选择 588
16.1.2  C/S模式介绍 589
16.1.3  数据库系统的选择 590
16.2  系统需求分析 590
16.2.1  即时消息的一般需求 590
16.2.2  即时消息的协议需求 590
16.2.3  即时消息的安全需求 591
16.2.4  即时消息的加密和鉴别 591
16.2.5  即时消息的注册需求 591
16.2.6  即时消息的通信需求 591
16.3  系统总体设计 591
16.4  即时通信系统的实施原理 592
16.4.1  IM的工作方式 593
16.4.2  IM的基本技术原理 593
16.4.3  IM的通信方式 593
16.5  功能模块划分 594
16.5.1  模块划分 594
16.5.2  服务器端功能 595
16.5.3  客户端功能 595
16.5.4  服务器端多线程 595
16.5.5  客户端多线程 596
16.6  数据库设计 596
16.6.1  数据库的选择 596
16.6.2  准备MySQL环境 597
16.6.3  Linux下的MySQL的C编程 601
16.6.4  聊天系统数据库设计 607
16.7  服务器端设计 608
16.8  客户端设计 616

正版购买

《Linux C与C++一线开发实践 第2版 朱文伟 李建英 Linux技术 C++语言 Linux文件编程 多进程编程 清华大学出版社》【摘要 书评 试读】- 京东图书 (jd.com)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【八股系列】为什么组件中的 data 必须是一个函数,然后 return 一个对象,而 new Vue 实例里,data 可以直接是一个对象?

🎉 博客主页:【剑九 六千里-CSDN博客】 🎨 上一篇文章:【点击一个按钮,浏览器会做些什么事情【呈现效果时流程】?(js)】 🎠 系列专栏:【面试题-八股系列】 💖 感谢大家点…

【ARMv8/v9 GIC 系列 4.3 -- GIC 中断控制系统寄存器 ICC_SRE_ELn 使用介绍】

文章目录 GIC 中断控制系统寄存器 ICC_SRE_ELn寄存器位域介绍Interrupt BypassBypass IRQBypass FIQBypass 配置GIC 中断控制系统寄存器 ICC_SRE_ELn ICC_SRE_EL3是中断控制器系统寄存器(Interrupt Controller System Register),用于控制在异常级别3(EL3)下,对GIC CPU接口…

CCAA质量管理【学习笔记】​​ 备考知识点笔记(三)质量管理方法与常见工具

第二部分 质量管理领域专业知识 《质量管理体系基础考试大纲》中规定的考试内容: 3.2 质量管理领域专业知识 a) 了解质量管理方法与工具相关知识,包括: 质量管理方法与工具的内涵与作用、发展历程与应用现状、分类与选择常用的应用软件…

SpringCloud 基于Nacos和Eureka 实现双注册双订阅

一、使用场景/原因 过渡期迁移: 当系统从一个服务注册中心迁移到另一个时,例如从 Eureka 迁移到 Nacos,可以在过渡期内同时使用两个注册中心,确保服务平稳迁移,逐步过渡,避免一次性切换带来的风险。 兼容性考虑: 不同的…

京东云 AX1800 Pro 路由器 亚瑟 R2242 u-boot 和 OpenWrt 刷机教程

上周末陪媳妇儿逛街的时候无意中看到了一篇 OpenWrt 的公众号文章:百元京东亚瑟wifi6路由器真香,支持刷OpenWrt系统。 然后,就开启了将近一周的苦逼刷机过程,因为最近工作忙只能利用晚上的时间来搞,刷机用了一天多搞定…

针对河南大学数据结构傻逼学堂在线的自动化脚本

首先展示一下我们的答案 {1: [对象], 2: [关系]} {1: [非数值计算], 2: [操作]} {1: [线性表]} [D] [B] [B] [C] [C] {1: [操作]} {1: [数据关系, 数据对象上关系的集合]} {1: [性质相同]} {1: [物理结构]} {1: [存储结构, 操作表示]} [C] [B] [D] [B] [D] [true] [false] [fa…

2024数据库期末综合(第9关:索引)

第9关:索引(注意看下面的温馨提示!!) 任务描述 湖南人口hnpeople数据表结构如图所示,各字段含义如下 cs(城市)、qx(区县)、rk(人口)、man(男)、woman(女)、child(儿童)、adult(成人)、old(老人)…

提升教学效率的全方位解决方案

在现代教育环境中,教学管理的复杂性与日俱增。如何高效管理教学活动、优化教师资源、提升教学质量,是每个教育机构面临的重要挑战。搭贝教务教学管理系统提供了一套全面的解决方案,涵盖了巡检、调课代课、生源登记、监考、外派、作业发布、听…

数据库开发-MySQL

前言 首先来了解一下什么是数据库。 数据库:英文为 DataBase,简称DB,它是存储和管理数据的仓库。 像我们日常访问的电商网站京东,企业内部的管理系统OA、ERP、CRM这类的系统,以及大家每天都会刷的头条、抖音类的app…

【Mac】DMG Canvas for mac(DMG镜像制作工具)软件介绍

软件介绍 DMG Canvas 是一款专门用于创建 macOS 磁盘映像文件(DMG)的软件。它的主要功能是让用户可以轻松地设计、定制和生成 macOS 上的安装器和磁盘映像文件,以下是它的一些主要特点和功能。 主要特点和功能 1. 用户界面设计 DMG Canva…

【深海王国】小学生都能做的APP?AppInventor、BLE蓝牙、Arduino联合开发你的第一个手机远程控制程序(7)

Hi~ (o^^o)♪, 各位深海王国的同志们,早上下午晚上凌晨好呀~ 辛勤工作的你今天也辛苦啦(/≧ω) 今天大都督依旧为大家带来小学生都能学会的APP制作教程,帮你一周内快速开发一款可以和单片机无线通讯的手机蓝牙APP,let’s go! &a…

跨境多账号需知:指纹浏览器需要用独立IP吗?

指纹浏览器也成为反检测浏览器,旨在安全管理多个账户。在跨境多账号中,多个账号容易引发网站怀疑并最终导致大量账户被暂停,使用反检测浏览器的主要目的是通过创建新的浏览器指纹来隐藏用户的真实浏览器指纹。 但浏览器指纹并不是网站关注的唯…

收费4980的AI批量混剪,素材技术方法工具配套,详细拆解!

前几天有朋友跟我讲,他说有做旅游卡的,他们收费4980元,给500张卡,送AI批量混剪技术,问我们有没有? 批量混剪技术,这个其他早在2022年的时候我们就已经使用了。有开通抖音企业号的朋友都知道&am…

AIGC-CVPR2024best paper-Rich Human Feedback for Text-to-Image Generation-论文精读

Rich Human Feedback for Text-to-Image Generation斩获CVPR2024最佳论文!受大模型中的RLHF技术启发,团队用人类反馈来改进Stable Diffusion等文生图模型。这项研究来自UCSD、谷歌等。 在本文中,作者通过标记不可信或与文本不对齐的图像区域&…

106、从中序与后序遍历序列构造二叉树

给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 提示: 1 < inorder.length < 3000postorder.length inorder.length-3000 < inorder[i]…

数学建模整数规划学习笔记

与线性规划的本质区别在于决策变量是否取整。 &#xff08;1&#xff09;分支定界法 若不考虑整数限制先求出相应松弛问题的最优解&#xff1a; 若松弛问题&#xff08;线性规划&#xff09;无解&#xff0c;则ILP&#xff08;整数规划&#xff09;无解。 若求得的松弛问题最…

Reddit、Discord等社媒网站抓取总结:如何更高效实现网页抓取?

有效的网络抓取需要采取战略方法来克服挑战并确保最佳数据提取。让我们深入研究一些关键实践&#xff0c;这些实践将使您能够掌握复杂的网络抓取。 一、了解 Web 抓取检测 在深入探讨最佳实践之前&#xff0c;让我们先了解一下网站如何识别和抵御网络爬虫。了解您在这一过程中…

基于改进TLS-ESPRIT的旋转机械故障诊断方法(MATLAB)

针对轴承信号微弱的问题&#xff0c;目前有以下几种方式来改善。如常用方法有&#xff1a;窗函数方法、非参数方法以及参数方法等。其中非参数方法包括AR模型、Prony指数模型等&#xff1b;参数方法中最为代表性的是MUSIC(多信号分类)方法&#xff0c;该方法通过对相关矩阵的特…

ECharts Y轴倒置,X轴顶部,图表反向

1.配置&#xff1a; xAxis:{position: ‘top’} //让x轴在顶部 yAxis: { inverse:true} //让Y轴坐标为反向坐标 2.将数据的只转换成负值&#xff08;不建议&#xff09;&#xff0c;显示的时候formatter里面在显示正值&#xff08;不建议&#xff09;

百度文库AI产品“橙篇”:支持10万字长文生成,开启AI创作新篇章

6月19日&#xff0c;百度文库发布了一款创新产品「橙篇」&#xff0c;这一行业首创的产品集成了10万字长文生成及多模态编辑能力&#xff0c;成为首个实现「查阅创编」一站式AI自由创作平台的里程碑。 百度“橙篇”官网&#xff1a; 地址&#xff1a;橙篇AI - 用橙篇&#xf…