最全的Linux教程,Linux从入门到精通
======================
-
linux从入门到精通(第2版)
-
Linux系统移植
-
Linux驱动开发入门与实战
-
LINUX 系统移植 第2版
-
Linux开源网络全栈详解 从DPDK到OpenFlow
第一份《Linux从入门到精通》466页
====================
内容简介
====
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。
本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。
需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
目录
编程工具
工欲善其事,必先利其器。C语言是一门编译型的计算机语言,需要依赖编译器将计算机语言转换成机器能够执行的机器指令。那常见的C语言编译器都有哪些呢?
msvc、clang、gcc 就是一些常见的编译器,当然也有一些集成开发环境如:VS2022、XCode、CodeBlocks、DevC++、Clion 等。
集成开发环境(IDE)是用于提供程序开发环境的应用程序,一般包括代码编辑器、 编译器 、 调试器和图形用户界面等工具,是集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套装。简单来说,我们只要在Windows环境下安装好VS2022这一个软件,就具备了C程序开发的所有条件(VS2022集成了msvc编译器)。XCode则是MacOS平台的集成开发环境(集成了clang编译器)。
本笔记中的代码均由Windows环境下的VS2022软件实现。
优点:
- VS2022 是一个主流的集成开发环境,企业中使用较为普遍;
- 包含了:文本编辑器 + 编译器 + 调试器,功能强大;
- 直接安装即可使用,基本不用额外配置环境,上手容易;
- 默认中文界面,初学者友好。
缺点:
- 功能丰富,安装包大,占用空间多。
VS2022安装教程
Windows环境下推荐使用VS2022社区版,因其免费,使用方便,较为常见。
安装教程见B站鹏哥教程,链接: VS2022安装使用教程,Visual Studio 2022详细安装使用调试教程C语言编译器,C++编译器。
第一个C程序
安装VS2022,新建项目,并新建源文件(.c
文件)后,在源文件中写入以下代码:
#include <stdio.h>
int main()
{
printf("Hello, X战警。\n");
return 0;
}
Ctrl + F5 执行命令“开始执行(不调试)”,或点击软件上方工具栏“调试 - 开始执行(不调试)”。
输出结果:
Hello, X战警。
C:\code\gitee\learning-c\LearningC_1_general_concepts\x64\Debug\LearningC_1_general_concepts.exe (进程 43336)已退出,代码为 0。
按任意键关闭此窗口. . .
编译和链接
C语言是一门编译型计算机语言,C语言源代码都是文本文件,文本文件本身无法执行,必须通过编译器的翻译和链接器的链接,生成二进制的可执行文件,可执行文件才能执行。
C语言代码是写在以.c
为后缀的文件中的,要得到最终运行的可执行程序,中间要经过编译和链接2个过程。
一个工程一般会由多个源文件组成,每个源文件(.c
文件)单独经过编译器处理生成对应的目标文件(以.obj
为后缀的文件),多个目标文件和库文件经过链接器处理生成对应的可执行文件(.exe
文件)。
库函数
printf
转义字符
字符串和 \0
- 字符串的末尾隐藏一个 \0,\0 被认为是字符串的结束标志,体现在:
- 当打印字符串的时候,打印到 \0 就自动停止。
- 当求字符串长度的时候,也是统计到 \0 为止,即统计的是 \0 之前字符的个数。
代码示例:
#include <stdio.h>
#include <string.h> // string 字符串 头文件
int main()
{
char arr1[] = "abc";
char arr2[] = { 'a', 'b', 'c'};
printf("%s\n", arr1);
printf("%s\n", arr2);
printf("%zd\n", strlen(arr1)); // %zd
printf("%zd\n", strlen(arr2));
return 0;
}
注意,因为使用了求字符串长度的库函数strlen()
,所以开头引入了字符串相关库函数的头文件<strling.h>
,同时根据warning提示将打印%d
修改为打印%zd
。
warning C4477: “printf”: 格式字符串“%d”需要类型“int”的参数,但可变参数 1 拥有了类型“size_t”
请考虑在格式字符串中使用“%zd”
输出结果:
abc
abc烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫贴->1?
3
42
C:\code\gitee\learning-c\LearningC\x64\Debug\LearningC.exe (进程 43964)已退出,代码为 0。
按任意键关闭此窗口. . .
结果可以看到,字符串arr2
因为是由三个单独的字符变量构成,末尾并没有字符串结束符 \n,所以额外打印出了一串随机代码,字符串长度也相应统计成了42。
代码示例:
int main()
{
### 最后的话
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
### 资料预览
给大家整理的视频资料:
![](https://img-blog.csdnimg.cn/img_convert/9b7482acc6367be55024833bd1d8f52b.png)
给大家整理的电子书资料:
![](https://img-blog.csdnimg.cn/img_convert/cde4fa84ae297cf26c1a76d0b786c903.png)
**如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!**
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618635766)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
点赞、收藏、转发给朋友,让我有持续创作的动力!**
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618635766)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**