![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux系统编程
文章平均质量分 64
太阳822
这个作者很懒,什么都没留下…
展开
-
gdb源码路径修改
则可以通过----directory(dir) dirName来指定,可以把相对目录变为绝对路径,例如。这时候运行就会自动把root替换成home,就可以正确查找路径。./src/a.cpp 没有那个文件或目录。/home/test/src 中。那么可以在运行环境的gdb中设置。而运行环境的源码放在了。原创 2024-03-25 16:35:37 · 373 阅读 · 0 评论 -
CmakeList教程
cmake 是一个跨平台、开源的构建系统。它是一个集软件构建、测试、打包于一身的软件。它使用与平台和编译器独立的配置文件来对软件编译过程进行控制。它会通过写的语句自动生成一个MakeFile,从而实现高效编译。原创 2024-01-22 11:04:23 · 1847 阅读 · 0 评论 -
gdbserver的使用
gdbserver的使用当我们的代码很大时,我们的虚拟机或板子并不能装载完整的、带符号表的代码,多数时候我们会使用strip去掉可执行文件的调试信息,这将使我们的代码大小减小许多。但这时如果代码出现了问题,就不能使用gdb来进行调试了,这时候就需要用到gdbserver。一.准备工作假设我们又两个虚拟机A和B,我们出问题的代码在A上。那么就需要在A上安装gdbserver,B上安装gdb,注意gdbserver的版本和gdb的版本要尽可能的一致,否则可能会出现符号表不能装载等问题。具体安装步骤就不写了原创 2022-02-09 14:33:31 · 2242 阅读 · 0 评论 -
git的基本使用
git的基本使用如何在一个分支上创建一个分支先克隆一个项目git clong再转移到到你需要在哪个分支新建的分支上,比如你现在在master上,你想在demo这个分支的基础上创建一个demoTest的分支$ git status位于分支 master您的分支与上游分支 ‘origin/master’ 一致。无文件要提交,干净的工作区$ git checkout demo把分支切换到demo上分支 gaodian 设置为跟踪来自 origin 的远程分支 gaodian。原创 2022-01-20 15:35:04 · 622 阅读 · 0 评论 -
Linux目录结构
Linux根目录下的目录结构当我们打开一个终终端进入根目录cd /可以看到以下目录树状目录结构是这样的/bin:bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令/boot:这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。/dev :dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。/etc:etc 是 Etcet原创 2021-09-16 14:42:01 · 1306 阅读 · 0 评论 -
软链接与硬链接
Linux软连接的使用提示:在Linux中,我们用ls -l查看文件详情经常会看到比如libwiringPi.so -> libwiringPi.so.2.50这样带箭号的东西,这就是软链接一、什么是软连接?软链接又叫符号链接,相当于Windows的快捷方式,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。也就是说,它可以为某一个文件再另一个不同的位置创建一个链接。最常用的参数是-s二、使用方法具体使用方法是:ln -s 源文件名 要创建的原创 2021-06-16 16:15:05 · 198 阅读 · 0 评论 -
PATH和LD_LIBRARY_PATH的区别
PATH和LD_LIBRARY_PATH本质都是变量,所谓变量的意思就是由别人赋值产生的,直觉往往会让我们添加和减少这个变量本身的某些路径,实际上这是不正确的。正确的做法是我们要去修改赋予这个变量数值的那些配置文件,加一条路径或者减一条。说到底变量只关乎显示,不关乎其用于显示的内容。查看当前环境变量:echo $PATHPATH: 可执行程序的查找路径设置:方法一: export PATH=“绝对路径” 但是登出后就失效方法二:修改/.bashrc或~/.bash_profile或系统级别原创 2021-06-15 22:55:30 · 650 阅读 · 0 评论 -
Listen第二个参数的值介绍
Socket编程中listen的第二个参数一、Listen函数的原型int listen(int sockfd, int backlog);第一个参数我们都知道是socket返回的描述符第二个参数表示什么呢,之前一直以为是connet的连接数量,但后面写小项目的时候发现并不是。二、Listen函数的第二个参数详解这张图是展示的三次握手的过程,这里我们要关注两个队列未完成三次握手的队列:每个这样的SYN分对应其中的一项,某个客户端发起了请求并到达服务端,而服务器正在等待处理对应的三次握手原创 2021-06-03 20:50:56 · 1040 阅读 · 1 评论 -
字节序
一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.filterwarnings('ignore')import sslssl._create_default_原创 2021-05-24 19:10:33 · 112 阅读 · 0 评论 -
信号量
信号量:信号量是用来控制临界资源的,那什么是临界资源呢:在系统中有许多进程,他们共享各种资源,然而又很多资源一次只能供一个进程来使用,一次仅允许一个进程使用的资源称为临界资源,比如共享内存。共享内存并未提供同步机制,也就是说,在第一个进程结束对共享内存的写操作之前,并无自动机制可以阻止第二个进程开始对它进行读取,所以我们通常需要用其他的机制来同步对共享内存的访问,例如信号量。信号量集:就是多个信号量的集合P操作:类似于拿锁,通过P操作来获取访问临界资源的权限。运行P,信号量S的值将被减少。企图进原创 2021-05-23 16:02:22 · 89 阅读 · 1 评论 -
驱动代码框架
内核驱动编写当上层用户空间用户调用open打开一个设备时,会通过open的设备名来触发软中断(中断号0x80),系统调用(sys_call)来调用虚拟文件系统(VFS)的(sys_open)通过主设备号在内核驱动链表中找到驱动并运行驱动内的程序。下面是设备驱动的基本框架代码如下(示例):#include <linux/fs.h>#include <linux/module.h>#include <linux/init.h>#include <linux/原创 2021-05-19 21:03:44 · 127 阅读 · 0 评论 -
动态库与静态库
库的介绍及制作一、动态库和静态库的优缺点1:静态库:程序在执行前(编译时)就就加入刀目标程序中了优点:①.静态库被打包在应用程序中,加载速度快。②.发布程序时无需提供静态库,因为已经在APP中,移植比较方便。缺点:①.链接时完整的拷贝刀可执行文件中,被多次使用就会有多份冗余拷贝。(例如静态库占用1M内存,有2000个这样的程序,就占用近2G内存)②.更新,部署,发布麻烦静态库制作:①:gcc xxx.c -c 生成xxx.o文件②:ar rcs +要生成的静态库名字.a +xxx原创 2021-05-18 19:30:43 · 301 阅读 · 0 评论 -
进程相关概念及使用
一、进程的概念1、进程和程序的区别1.程序是静态的概念,比如你写的一个存在磁盘中的文件,比如gcc - o pro ,这个生成的pro可执行文件就是程序。2。进程是动态的概念,比如gcc -o pro生成的这个pro文件,当他运行起来以后,系统中就会多一个进程。2、如何查看系统中有哪些进程1 ps指令:使用ps-aux指令可以查看所有进程,使用grep过滤得到想要知道的进程。比如(ps-aux|grep a.out),这里的|是指管道,作用是把ps得到的所有进程通过这个管道,通过grep筛选关原创 2021-05-06 20:17:23 · 204 阅读 · 0 评论