Linux高并发服务器开发01:Linux系统编程入门

news2024/11/25 4:04:39

GCC

什么是GCC

在这里插入图片描述

在这里插入图片描述

GCC工作流程

在这里插入图片描述

GCC常用的参数选项

在这里插入图片描述
在这里插入图片描述

GCC和G++的区别

在这里插入图片描述
在这里插入图片描述

静态库

什么是库

在这里插入图片描述

静态库的制作

在这里插入图片描述
先编译生成对应的.o文件
gcc -c add.c sub.c mult.c div.c -I …/include/
再将.o文件打包成静态库
ar rcs libcalc.a add.o sub.o mult.o div.o
使用的时候-l指定库名称
gcc main.c -o app -I ./include/ -l calc -L ./lib
其中-o表示输出文件是app,-I(大写i) 表示指定头文件的路径,-l表示指定库名称为calc,-L表示库的路径是./lib

动态库

动态库的制作

在这里插入图片描述

工作原理

在这里插入图片描述

静态库和动态库的对比

程序编译成可执行程序的过程

在这里插入图片描述

静态库制作过程

在这里插入图片描述

动态库制作过程

在这里插入图片描述

静态库的优缺点

在这里插入图片描述

动态库的优缺点

在这里插入图片描述

Makefile

什么是Makefile

在这里插入图片描述

Makefile文件命名和规则

在这里插入图片描述

工作原理

在这里插入图片描述
在这里插入图片描述

变量

在这里插入图片描述

模式匹配

在这里插入图片描述

函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

GDB

什么是GDB

在这里插入图片描述

准备工作

在这里插入图片描述

GDB命令

启动、退出、查看代码

在这里插入图片描述

断点操作

在这里插入图片描述

调试命令

标准C库IO函数和Linux系统IO函数对比

文件IO

标准C库IO函数

存在缓冲区,效率更高
在这里插入图片描述

标准C库IO和linux系统IO的关系

在这里插入图片描述

虚拟地址空间

在这里插入图片描述

文件描述符

在这里插入图片描述

linux系统IO函数

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[C++]AVL树、红黑树以及map、set封装

目录 前言: 1 AVL树 1.1 AVL树的概念 1.2 AVL树结点的定义 1.3 AVL树插入 1.4 插入结点的调整 1.5 AVL树的旋转调整 1.5.1 右单旋 1.5.2 左单旋 1.5.3 左右双旋 1.5.4 右左双旋 1.5.4种旋转的判断方式 2 红黑树 2.1 红黑树概念 2.2 红黑树与AVL树的比…

路径规划算法:基于飞蛾扑火算法的路径规划算法- 附代码

路径规划算法:基于飞蛾扑火优化的路径规划算法- 附代码 文章目录 路径规划算法:基于飞蛾扑火优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化…

Linux基本指令-3

文章目录 一、 d a t e date date [选项] 格式1、常用选项:2、运用实例: 二、 c a l cal cal [选项] [年份]1、常用选项:2、运用实例: 三、 f i n d find find[路径] [ − n a m e ] [-name] [−name] 文件名1、…

消息推送平台有没有保证数据不丢?

我们在使用mq的时候,就会很自然思考一个问题:怎么保证数据不丢失? 现在austin接入层是把消息发到mq,下发逻辑层从mq消费数据,随后调用对应渠道接口来下发消息。 消息推送平台🔥推送下发【邮件】【短信】【…

001 - STM32固件库编程

STM32固件库编程 一、新建工程文件夹 1、工程文件夹内添加:Project、Libraries、User、Doc,之后在Project目录内新建工程,并将标准库中CMSIS、STM32F4xx_StdPeriph_Driver复制到Libraries中。 2、将\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Pr…

Hbase基础介绍-1 概述

Hbase基础介绍-1 概述 一、概述1、定义:2、特点:3、HBase在Hadoop生态中的地位4、HBase与HDFS5、Hbase与Hive6、关系型数据库与列式数据库7、结构化数据和非结构化数据8、HBase使用场景9、CAP定理10、Hbase与传统关系型数据库的区别 一、概述 1、定义&am…

飞腾D2000 如何修改boot启动项

开机后,按着F2进入如下界面 选择Enter Setup 选择 Boot Maintenance Manager 进入Boot Options 选择Change Boot Order 在这个界面按 键盘上的 Enter 键 在弹出得蓝色小方框里,按键盘的上下键,比如我要把硬盘盘符放在boot 启动项的第一首选项,则移动下键到硬盘盘符上,再…

嵌入式系统入门基础知识分析(二)

目录 ​编辑 1、GPIO原理与结构 2、A/D接口 3、D/A接口基本 4、键盘接口

解密网站401错误:了解发生原因和修复方法

​  每个网站都会有不同的错误码,其中,401错误被认为是相对常见的错误码。那么,什么是网站401错误呢?在摸清了这一点之后,我们也需要学习一下如何解决它。 什么是 401 状态码? 401 状态代码是 Web 服务器发送给浏览器的 HTTP …

【小菜鸡刷题记】--字符串篇

【小菜鸡刷题记】:字符串 剑指 Offer 05. 替换空格剑指 Offer 58 - II.左旋转字符串剑指 Offer 20.表示数值的字符串剑指 Offer 67. 把字符串转换成整数 特此声明:题目均来自于力扣 剑指 Offer 05. 替换空格 题目链接 请实现一个函数,把字符…

【JUC基础】06. 生产者和消费者问题

1、前言 学习JUC,就不得不提生产者消费者。生产者消费者模型是一种经典的多线程模型,用于解决生产者和消费者之间的数据交换问题。在生产者消费者模型中,生产者生产数据放入共享的缓冲区中,消费者从缓冲区中取出数据进行消费。在…

MySQL同时In俩个字段,In多个字段,Mybatis多个In查询问题,Mysql多个IN查询多出数据问题,Mysql多个IN查询 数据准确问题

背景: 今天产品验收的时候,导入了大量数据;发现造价项目某个查询列表数据多出了几条数据;看了Mybatis查询,才发现是同时使用了多个IN查询导致的问题;入参是对象列表,In值是分开循环赋值…

【SpringBoot整合RabbitMQ(上)】

一、简单的生产者-消费者 1.1、创建连接工具类获取信道 public class RabbitMqUtils {public static Channel getChannel() throws IOException, TimeoutException {//创建一个链接工厂ConnectionFactory factory new ConnectionFactory();//工厂IP 链接RabbitMQ的队列facto…

google_breakpad库的基本使用

参考链接: windows下捕获dump之Google breakpad_client的理解Google Breakpad:基本介绍和操作方法Breakpad 入门linux下用QT捕获程序异常 简介 github 地址 三大组件 client:读取当前线程的状态、加载的可执行文件、共享库等信息,写入到…

Azure深层防御

深层防御的目的是保护信息,防止未经授权访问信息的人员窃取信息。 深层防御策略使用一系列机制来减缓攻击进度,这些攻击旨在获取对数据的未经授权的访问权限。 深层防御层 可以将深度防御可视化为一组层,并将要保护的数据放在中心&#xf…

一篇文章搞定ftp、dns服务器

一篇文章搞定ftp、dns服务器 1、ftp 安装ftp 挂载centos镜像cd /media/CentOS_6.8_Final/Packages安装命令:[rootlocalhost Packages]# rpm -ivh vsftpd-2.2.2-21.el6.x86_64.rpm Vsftpd配置目录为/etc/vsftpd,其中包含下面几个文件 /var/ftp/&#xf…

awk命令编辑

awk工作原理 逐行读取文本,默认以空格或tab键分隔符进行分隔,将分隔所得的各个字段保存到内建变量中,并按模式或者条件执行编辑命令。 sed命令常用于一整行的处理,而awk比较倾向于将一行分成多个“字段”然后再进行处理。awk信息…

做网工10年,没人在30岁前和我讲这些(一)

晚上好,我是老杨。 23年才刚过几天,我就感觉自己又上了点年纪,时常面对年纪比较小的粉丝,无意识的面露慈爱的笑容。 还是每次小冬提醒我,我才发现我的表情不对劲。 我对年轻人的包容度是很强的,尤其是一…

VMware、CentOS、XShell、Xftp的安装

第 1 章 VMware 1.1 VMware 安装 一台电脑本身是可以装多个操作系统的,但是做不到多个操作系统切换自如,所以我们 需要一款软件帮助我们达到这个目的,不然数仓项目搭建不起来。 推荐的软件为 VMware,VMware 可以使用户在一台计…

DNS正反向解析

正向解析 1.准备工作 关闭Selinux服务和firewalld服务 [rootserver ~]# setenforce 0 [rootserver ~]# systemctl stop firewalld 修改服务器与客户端的IP为静态IP地址 [rootserver ~]# nmcli connection modify ens160 ipv4.method manual ipv4.address …