系统编程
文章平均质量分 83
小菜鸡加油
菜鸡
什么都能折磨
展开
-
进程环境变量:putenv函数的不安全问题
前言在做项目的时候发现一个bug,调了2小时多最后发现,于是写了两个对应的demo来解释getenv的坑现象一般来说我们可以通过环境变量来达到传参的目的。而环境原创 2022-03-09 09:31:55 · 1655 阅读 · 3 评论 -
Linux的动态库和静态库
动静态库文章目录动静态库动静态库的概念动态链接的特点静态链接的特点查看文件的动静态链接属性动态链接的机理生成&&使用静态库生成&&使用动态库使用外部库动静态库的概念静态库(.a):程序在编译链接的时候把库的代码链接到可执行文件中。程序运行的时候将不再需要静态库动态库(.so):程序在运行的时候才去链接动态库的代码,多个程序共享使用库的代码。 一个与动态库链接的可执行文件仅仅包含它用到的函数入口地址的一个表,而不是外部函数所在目标文件的整个机器码在可执行文件开始运行原创 2022-03-01 19:52:08 · 1323 阅读 · 0 评论 -
brk()、mmap()及malloc()基本原理
文章目录linux内存分配缺页中断linux内存分配的原理malloc()背后的实现原理malloc()和free()的功能malloc()和free()的分配算法参考资料linux内存分配缺页中断什么是缺页中断,简单来说是因为操作系统采用了虚拟内存技术,程序代码/数据对应的内容并不一定是完全读入到内存中,在使用到时候发生缺页中断将对应的内容读入到内存中。当一个进程发生缺页中断的时候,进程会陷入内核态,执行以下操作:检查要访问的虚拟地址是否合法查找/分配一个物理页填充物理页内容(读取磁盘,或原创 2022-02-27 16:25:54 · 4502 阅读 · 3 评论 -
demo:线程池+tcp
pthreadPool.hpp#pragma once#include<pthread.h>#include<queue>#include<iostream>#include<string>#include<cstring>#include<unistd.h>#include<sys/wait.h>#include<sys/socket.h>#include<arpa/inet.h>原创 2022-02-06 23:55:48 · 557 阅读 · 1 评论 -
linux基础(1)-常见指令及权限理解
1.常见指令及权限理解初始Linux操作系统初识shell命令 ,了解若干背景知识。使用常用Linux命令了解Linux权限概念与思想,能深度理解“权限”初步了解Linux 目录结构含义1.linux系统及计算机背景linux:开源(免费)–>更稳定和高效OS:“管理”的软件,主要管理:软件+硬件普通用户和root用户(只有一个):普通用户不能叫做root,普通用户的密码不要和root一样命令行方式vs图形界面方式历史上为了计算导弹弹道轨道,发明了计算机,埃尼阿克计原创 2021-10-26 23:37:06 · 1306 阅读 · 14 评论 -
linux下extern“C”的使用
文章目录extern “C”1.C++程序中调用C库2.C程序中调用C++函数extern “C”vs下实现静态库:包含对应目录下的头文件在工程属性中配置静态库目录(链接器的常规中),添加静态库(链接器的输入中)Cpp调C:在Cpp的#include"…/xxx/xx.h"上下加上extern “C”{}extern "C"{ #include"../xx/Stack.h"}C调Cpp:在Cpp的.h文件中加extern “C”{ 函数},Cpp静态库就会按照C的规则去处理以原创 2022-01-15 18:45:37 · 1665 阅读 · 0 评论 -
linux进程
linux进程文章目录linux进程1.冯诺依曼体系2.操作系统(Operator System)2.1操作系统概念2.2如何理解“管理”2.1~2.2小结2.3系统调用和库函数3.进程3.1进程的概念3.2描述进程PCB3.2.1task_ struct内容分类3.3组织进程3.4查看进程3.5系统调用获得进程相关信息3.5.1getpid()和getppid()3.5.2命令行中的父进程3.5.3通过系统调用创建进程-fork3.5.3.1现象3.5.3.2如何理解进程创建3.5.3.3fork为什么原创 2021-11-28 15:43:23 · 1155 阅读 · 0 评论