Linux系统编程
在本专栏中将学习Linux系统编程。其中理论居多,其次实践前半部分将采用C编程,后半部分用C++编程。我们在学学习中,不会死磕一个理论,直至明白;而是循序渐进的,解决了新问题的同时,再引入新问题。
跳动的bit
这个作者很懒,什么都没留下…
展开
-
【Linux系统编程:基础IO 下】dup2 实现输出重定向、输入重定向、追加重定向 | 理解磁盘 | 理解文件系统中inode的概念 | 软硬链接
这里先接着《基础IO 上》中的缓冲区的内容作些补充,这里主要补充 dup2 接口。close(1);return 1;return 0;}close 1 后,1 就不再表示显示器文件,而 open log.txt 后,1 就表示 log.txt 文件,所以 fprintf 并不会往显示器上输出,而是会往 log.txt 里输出,可是 log.txt 中没有内容。...原创 2022-08-07 08:10:32 · 650 阅读 · 30 评论 -
【Linux系统编程:基础IO 上】简单复习C语言文件接口 | 学习系统文件接口 | 认识文件描述符 | Linux下,一切皆文件 | 重定向原理
关于进程,我们还要再往下学习进程间通信、进程信号,但是在这之前,我们先学习基础IO,这篇文章穿插在进程中并不奇怪,因为它有着承上启下的作用。文件的宏观理解那么文件在哪呢?——广义上理解,键盘、显示器等都是文件,因为我们说过“Linux下,一切皆文件”,当然我们现在对于这句话的理解是片面的;狭义上理解,文件在磁盘上,磁盘是一种永久存储介质,不会受断电的影响,磁盘也是外设之一,所以对文件的所有操作,都是对外设的输入输出,简称IO(Input、Output)。文件的组成。.........原创 2022-07-20 08:43:56 · 1158 阅读 · 34 评论 -
【Linux进程控制】进程创建 | 进程终止 | 进程等待 | 进程替换
本文主要学习理解 fork 的返回值、写时拷贝的工作细节、为什么要存在写时拷贝;进程退出码、进程退出的场景及常见的退出方法、对比 man 2 _exit 和 man 3 exit;进程终止、操作系统怎么进行释放资源、池的概念;进程等待的价值、进程等待的方法 wait 和 waitpid(常用)、int* status、阻塞和非阻塞、如何理解等待、WIFEXITED、WEXITSTATUS、WTERMSIG;什么是进程替换 && 为什么要进程替换、替换原理、7个exec系列的替换函数、模拟shell解释器;原创 2022-06-17 10:00:00 · 1151 阅读 · 56 评论 -
【Linux进程概念——下】验证进程地址空间的基本排布 | 理解进程地址空间 | 进程地址空间如何映射至物理内存(页表的引出) | 为什么要存在进程地址空间 | Linux2.6内核进程调度队列
文章目录【写在前面】一、程序地址空间二、进程地址空间三、【写在前面】一、程序地址空间这个概念比较重要,之前我们也涉及过 —— 我们在语言上定义的各种变量等在内存中的分布情况,如果没有听说过,那么你的 C/C++ 是不可能学好的。其实对于这块,我们一直是有误区的。二、进程地址空间三、...原创 2022-05-30 08:07:22 · 750 阅读 · 37 评论 -
【Linux环境变量与命令行参数】常见环境变量 | 环境变量的全局属性 | 命令行参数
对于环境变量,主要介绍基本概念及三四个环境变量 —— PATH、HOME、SHELL、HISTSIZE,其中 PATH 作为 “ 敲门砖 ”,我们会更详细讲解;理解环境变量的全局属性 —— 环境变量是可以被子进程继承(注意区分 C++ 里的继承);环境变量的组织方式。其次会介绍命令行参数 —— main 函数的参数。注意学习了本文的知识,并不代表己经掌握了环境变量,因为还有很多关于环境变量使用的技巧及常见的环境变量没有过多的介绍,后面有需要用到环境变量的地方在展开。原创 2022-05-17 09:52:18 · 1210 阅读 · 33 评论 -
【Linux进程概念——上】冯 • 诺依曼体系结构 | 操作系统 | 进程 | fork | 进程状态 | 优先级
从此篇开始,就开始学习 Linux 系统部分 —— 进程,在正式学习 Linux 进程之前,我们需要铺垫一些概念,如冯诺依曼体系结构、操作系统的概念及定位、进程概念,我们会先铺垫理论,再验证理论。其次对于某些需要深入的概念我们只是先了解下。本文中的 fork 只会介绍基本使用,以及解答 fork 为啥会有 2 个返回值、为啥给子进程返回 0,而父进程返回子进程的 pid;而对于用于接收 fork 返回值的 ret 是怎么做到 ret == 0 && ret > 0、写时拷贝、代码是怎么做到共享的、数据是怎么原创 2022-05-17 16:16:57 · 2676 阅读 · 66 评论 -
【Linux工具】:软件包管理器yum | 编辑器vim | 编译器gcc/g++ | 调试器gdb | 自动化构建工具make/Makefile | Linux小程序:进度条 | git命令行
我们学习 Linux 主要是在上面做开发的 —— 写代码、编译代码、调试代码、自动化构建项目、上传 github/gitee。在这里我们一共会介绍 5 - 6 个工具 —— 软件包管理器 yum、文本编译器 vim、代码编译器 gcc/g++、调试器 gdb、自动化构建项目 make/Makefile、以及 Linux 上的 git 的命令行。......原创 2022-04-12 10:05:39 · 1050 阅读 · 9 评论 -
【Linux权限】Shell命令及运行原理 | Linux权限管理 | 粘滞位
Linux 严格意义上说的是一个操作系统,我们称之为核心 (kernel),也就是内核,但是一般用户,不能直接使用 kernel,而是通过 kernel 的外壳程序,也就是所谓的 shell 来与 kernel 沟通。原创 2022-02-22 10:13:35 · 3649 阅读 · 40 评论 -
【Linux基本指令】os概念及定位 | 基本指令 | 热键
这里不会把所有的指令及选项在入门阶段全部讲出来,当然也不可能全部记住。大量的实例证明一开始死记的人大多数多记不住,这里只讲一些指令的基本功能和一些重要的选项,其余的以后遇到了再实践。在讲每条指令时其中会穿插一些别的概念,其次这里会大概了解下 os 。原创 2022-02-19 09:49:25 · 3692 阅读 · 19 评论 -
Linux入门篇
一、Linux 背景介绍???? 发展史???? 开源???? 官网???? 企业应用现状???? 发行版本二、搭建 Linux 环境???? Linux 环境的搭建方式???? 购买云服务器三、使用 XShell 远程登陆到 Linux???? 关于 Linux 桌面???? 下载安装 XShell???? 查看 Linux 主机 ip???? 使用 XShell 登陆主机???? XShell 下的复制粘贴???? 服务器如何共享原创 2021-12-30 09:00:32 · 410 阅读 · 10 评论