Linux
文章平均质量分 93
Linux环境、系统编程、网络编程
五颗粒粒
你就是海滩下的那乌克丽丽
寻找着逆光让暧昧变成剪影
展开
-
Linux进程控制——进程创建(fork函数)、进程终止(exit和_exit函数)和进程等待(wait和waitpid方法)
一、进程创建1.1 fork函数初识对于fork函数的参数和返回值可以阅读本篇博客Linux进程编程实践1——进程的基本概念、fork创建进程这里直接上图了解fork的头文件和参数Q1:为什么父进程返回子进程id,而子进程返回0?现实生活中,任何孩子都知道自己的父亲(排除特殊情况),而父亲却可能有多个孩子,因此就需要一个代号来标识每一个孩子,简单来说就是父亲:孩子=1:n因此,对于操作系统来说,父进程有多个子进程,需要返回子进程的pid来调度每个子进程,而任何子进程都知道自己的父进程,因此.原创 2021-08-11 15:32:56 · 1876 阅读 · 2 评论 -
Linux多线程——基于环形队列的生产消费模型
这里写目录标题一、POSIX信号量1.1 什么是POSIX信号量?一、POSIX信号量POSIX信号量和SystemV信号量作用相同,都是用于同步操作,达到无冲突的访问共享资源目的。 但POSIX可以用于线程间同步。1.1 什么是POSIX信号量?POSIX信号量的本质是一个计数器初始化信号量#include <semaphore.h>int sem_init(sem_t *sem, int pshared, unsigned int value);参数:pshared:0表示原创 2021-05-06 18:11:14 · 376 阅读 · 1 评论 -
Linux多线程——生产消费者模型概念和C++模拟实现生产消费者模型
Linux多线程——生产消费者模型概念和C++模拟实现生产消费者模型一、生产消费者模型1.1 什么是生产消费者模型?1.2 为什么使用生产消费者模型?1.3 生产消费者模型的321原则1.4 生产者消费者模型优点二、基于BlockingQueue的生产者消费者模型2.1 什么是BlockQueue(阻塞队列)?2.2 C++模拟实现基于互斥锁、条件变量和阻塞队列的生消费者模型<1> Makefile<2> BlockQUeue.hpp<3> main.cc<4>原创 2021-04-23 17:25:39 · 317 阅读 · 2 评论 -
Linux进程通信——匿名管道、命名管道、管道的特性和共享内存
Linux进程通信——匿名管道、命名管道和管道的特性一、管道1.1 什么是管道?1.2 匿名管道<1> 匿名管道参数说明<2> fork共享管道原理<3> 站在文件描述符角度-深度理解管道<4> 管道读写规则<5> 管道的特性与特点总结1.3 命名管道<1> 创建一个命名管道<2> 匿名管道与命名管道的区别<3> 命名管道的打开规则<4> 用命名管道实现server&clinet通信一、原创 2021-04-06 18:24:09 · 1928 阅读 · 9 评论 -
Linux概念——进程地址空间
三、程序地址空间对于C语言学习,我们并不陌生这张图<1> 进程地址空间但是对Linux而言,上图叫做进程地址空间,然而上图真的对应物理空间吗?我们运行下面代码来验证#include <stdio.h>#include <unistd.h>#include <stdlib.h>int g_val = 0;int main(){ pid_t id = fork(); if(id < 0) { perror("fork"原创 2021-03-11 17:30:43 · 598 阅读 · 1 评论 -
Linux进程概念——进程优先级、环境变量
Linux进程概念——进程优先级和环境变量一、Linux进程优先级1.1 进程优先级三连问?<1> 什么是进程优先级?(优先权 VS 权限)<2> 为什么要有优先级?<3> 怎么使用优先级?1.2 Linux进程优先级查看和修改<1>查看系统进程<2> PRI和NI的区别与联系<3> 修改进程优先级的命令二、环境变量2.1 基本概念2.2 环境变量的查看和组织<1> 常见的环境变量<2> 查看环境变量方法<原创 2021-03-08 19:24:00 · 637 阅读 · 0 评论 -
Linux进程编程实践2——进程状态、模拟实现僵尸进程和孤儿进程
Linux进程编程实践——进程状态、模拟实现僵尸进程和孤儿进程一、Linux进程状态二、僵尸进程2.1 什么是僵尸进程?2.2 模拟实现僵尸进程Q1:为什么会有僵尸进程?Q2:僵尸进程的危害有哪些?三、孤儿进程3.1 什么是孤儿进程?3.2 模拟实现孤儿进程一、Linux进程状态操作系统的经典三态为:就绪、阻塞、运行对于Linux内核来说我们可以在kernel源代码里看到进程的状态/** The task state array is a strange "bitmap" of* reasons原创 2021-02-20 16:36:33 · 1025 阅读 · 0 评论 -
Linux进程编程实践1——进程的基本概念、fork创建进程
Linux进程编程实践——进程概念、进程描述、fork创建进程一、进程的基本概念1.1 程序 VS 进程<1> 什么是程序?<2> 什么是进程?<3> 进程和程序的区别1.2 进程数据结构(描述进程)<1> 操作系统的进程描述——PCB<2> Linux下的进程描述——task_struct二、fork创建进程2.1 获取进程标识符与查看进程Q1:为什么要知道一个进程的PID以及它父进程的PID呢?2.2 fork创建进程Q1:如何理解进程创建?Q原创 2021-02-19 21:56:01 · 972 阅读 · 2 评论 -
Linux基本命令(下)——用户、权限管理
Linux命令——用户权限管理一、Linux用户管理<1> 查看当前用户:whoami<2> 查看登录用户:who<3> 添加用户账号:useradd<4> 设置用户密码:passwd<5> 删除用户:userdel<6> 添加、删除组账号:groupadd、groupdel<7> 修改用户所在组:usermod<8> 查看用户在哪些组:groups二、Linux权限管理2.1 文件访问者的分类(人)2.2 文件原创 2021-02-17 17:00:08 · 1948 阅读 · 4 评论 -
Linux基本命令(中)——系统管理和磁盘管理
Linux命令——系统管理和磁盘管理一、系统管理1.1 时间相关指令<1> 查看当前日历: cal<2> 显示或设置时间: data1.2 进程相关指令<1> 查看进程信息: ps<2> 动态显示进程:top<3> 终止进程: kill1.3 关机重启相关指令:reboot、shutdown、init1.4 网络操作相关指令:ifconfig、ping二、磁盘管理2.1 检测磁盘空间:df2.2 检测目录所占磁盘空间:du一、系统管理1.1 时原创 2021-02-14 13:46:16 · 3078 阅读 · 4 评论 -
Linux的C语言开发工具——通过进度条小程序学习使用gcc、gdb和make/Makefile工具
C语言实现进度条程序——gcc、gdb和make工具的使用一、Linux下的进度条程序实现二、Linux编译器-gcc三、Linux调试器-gdb四、Linux项目自动化构建工具-make/Makefile一、Linux下的进度条程序实现二、Linux编译器-gcc三、Linux调试器-gdb四、Linux项目自动化构建工具-make/Makefile...原创 2021-01-30 23:47:46 · 3269 阅读 · 2 评论 -
Linxu基本命令(上)——文件管理
Linux基本命令——文件管理一、Linux命令概述1.1 命令使用方法1.2 查看帮助文档1.2.1 --help1.2.2 man(有问题找男⼈,manual)1.3 自动补全1.4 历史命令二、Linux文件管理命令2.1 查看文件信息:ls2.2 输出重定向命令:>分屏显示:more分屏显示:less显示开头:head显示结尾:tail管道:|清屏:clear切换⼯作⽬录: cd创建⽬录:mkdir删除⽬录:rmdir删除⽂件:rm查看或者合并⽂件内容:cat⽂本搜索:grep查找⽂件:fi原创 2021-01-24 18:39:05 · 1868 阅读 · 1 评论