linux编程
文章平均质量分 54
ztenv
这个作者很懒,什么都没留下…
展开
-
通过设置gcc的flags来捕获异常
然后,就可以不使用gdb来调试即可打印堆栈等详细信息了。即可实现运行程序时捕获异常的目的。原创 2024-07-18 16:55:16 · 128 阅读 · 0 评论 -
linux平台方便的获取当前进程名字的几种方法
vim /proc/pid/status #可以获取name。在main函数中使用变量。在main函数中调用。原创 2024-07-18 10:20:54 · 409 阅读 · 0 评论 -
socat创建虚拟串口示例
socatpty2的串口,并向pty2发送数据,从pty1读取数据了,从而达到了模拟串口通讯的目的。此时就可以使用串口的API打开名为。可以看到在home目录下会生成。此时在终端1上就会显示。/socatpty1和。原创 2024-01-20 07:00:00 · 895 阅读 · 0 评论 -
强大的socat工具,可创建虚拟串口、在串口/网口间转发数据等,基本上无所不能的工具
socat,一个强大的工具,串口工具原创 2024-01-20 06:00:00 · 1322 阅读 · 0 评论 -
ubuntu禁用/启用图形界面
重启ubuntu即时入了ubuntu的文本模式(命令行模式)了。重启ubuntu后即又可以进图形界面了。3、重新恢复到图形界面。原创 2024-01-17 09:58:55 · 1918 阅读 · 0 评论 -
ubuntu 启用core文件
在当前session下执行。原创 2024-01-11 17:46:20 · 910 阅读 · 0 评论 -
tcpdump
1、定时生成抓包文件。2、解析.cap文件。原创 2023-11-10 14:57:06 · 180 阅读 · 0 评论 -
tcpdump显示抓取的数据抱
【代码】tcpdump显示抓取的数据抱。原创 2023-10-13 16:23:15 · 203 阅读 · 0 评论 -
systemctl 用法大全
【代码】systemctl 用法大全。原创 2023-04-13 12:54:12 · 294 阅读 · 0 评论 -
linux下安装mariadb和配置全攻略
然后输入密码就可以以admin用户登录到数据库了。#创建admin账户。原创 2023-04-01 19:24:27 · 679 阅读 · 0 评论 -
c++连接mariadb/mysql 数据代码
【代码】c++连接mariadb/mysql 数据代码。原创 2023-02-13 21:26:54 · 457 阅读 · 0 评论 -
How to install MariaDB Connector/C++ on linux
从源码安装mariadb connector/c++原创 2023-02-08 00:06:30 · 523 阅读 · 0 评论 -
配置或查看linux内核参数
命令sysctl使用方法 sysctl [options] [variable[=value]] [...] sysctl -p [file or regexp] [...]功能描述 sysctl is used to modify kernel parameters at runtime. The parameters available are those listed under /proc/sys/. Procfs is required for sysctl原创 2022-05-07 23:48:13 · 5366 阅读 · 8 评论 -
The Linux man-pages
The Linuxman-pagesprojectThe Linuxman-pagesproject documents theLinuxkerneland C library interfaces that are employed by user-space programs. With respect to the C library, the primary focus is theGNUC library (glibc), although, where known, doc...原创 2022-03-16 13:43:31 · 1148 阅读 · 0 评论 -
tcpdump 抓取多个端口的数据包
tcpdump -i ens05 tcp and host xxx.xxx.xxx.xxx and port '(25001 or 25002 or 35005' -vv -w test.cap原创 2022-03-16 13:38:05 · 9826 阅读 · 0 评论 -
TCP protocol and socket
NAME toptcp - TCP protocolSYNOPSIS top#include <sys/socket.h>#include <netinet/in.h>#include <netinet/tcp.h> tcp_socket = socket(AF_INET, SOCK_STREAM, 0);DESCRIPTION topThis is an implementation of the T原创 2022-03-09 18:42:36 · 537 阅读 · 0 评论 -
netstat 命令详解
netstat命令是常见的查看网络信息的命令,主要包括网络连接的信息、路由表的信息、网卡的信息和广播的信息等;本次不会讲解如何使用netstat命令,详细的使用方法请参见:man netstat本次主要聊一聊网络连接的信息,当使用netstat -anop命令时,输出如下:那么,这些信息主要是什么意思呢?待我一一道来。Proto协议的类型,主要有tcp、tcp6、udp、unix、udplite、raw、sctp等,当然可以通过传相应的协议类型给netstat命令而仅仅显示某种类型的协议,如:原创 2022-03-01 14:25:08 · 9339 阅读 · 3 评论 -
Enter passphase for key, 避免频繁的输入被密码保护的ssh key
启动agent eval `ssh-agent -s`添加id_rsassh-add ~/.ssh/id_rsa输入密码,在不重启电脑之前,可以不用频繁的输入密码了。原创 2022-02-23 14:11:43 · 3959 阅读 · 0 评论 -
systemctl systemd.service
Namesystemd.service — Service unit configurationSynopsisservice.serviceDescriptionA unit configuration file whose name ends in ".service" encodes information about a process controlled and supervised by systemd.This man page lists the configu原创 2021-12-15 12:29:48 · 571 阅读 · 0 评论 -
编写使用systemctl管理的service服务
上文介绍了systemctl命令是基于Systemd系统的,本文主要简单的介绍一下如何编写一个可以使用systemctl命令管理的后台进程(daemon进程),使用systemctl命令管理进程(服务)主要有以下好处:1、可以方便的查看进程的状态2、可以方便的启动、停止、重启、reload进程3、可以方便的配置进程是否随系统启动而启动,并且可以配置复杂的依赖关系(如:在某个服务启动后启动)4、可以方便的指定以某个用户的身份启动等等。service文件一般分为三个部分:Unit用来定义 Uni原创 2021-12-14 23:16:18 · 2752 阅读 · 0 评论 -
Systemd and sysemctl
系统结构Systemd 的设计目标是为系统的启动和管理提供一套完整的解决方案,具体的结构如上图所示。Systtemd不是一个命令,而是一组命令,这组命令涉及系统管理的多个方面。Systemd的相关命令systemctl#查看版本$ sudo systemctl --version# 重启系统$ sudo systemctl reboot# 关闭系统,切断电源$ sudo systemctl poweroff# CPU停止工作$ sudo systemctl halt# 暂停原创 2021-12-14 21:03:13 · 1880 阅读 · 0 评论 -
perf+flame分析程序性能,并生成火焰图。
安装perf工具sudo apt-get install linux-tools-common linux-tools-generic linux-tools-`uname -r`安装flame工具git clone git@github.com:brendangregg/FlameGraph.gitcd ./FlameGraphchmod +x *.plperf命令简介usage: perf [--version] [--help] [OPTIONS] COMMAND [ARGS]原创 2021-08-23 09:55:14 · 738 阅读 · 0 评论 -
升级gcc后,找不到`GLIBCXX_‘ 的问题
问题描述在手动升级gcc后,编译或运程程序可能会存在找不到适当的GLIBCXX版本的问题,(目前我升级到了gcc11.2.0,对应版本是GLIBCXX_3.4.29),在执行命令:strings /usr/lib64/libstdc++.so.6|grep GLIBC |more时, 部分输出如下:GLIBCXX_3.4.18GLIBCXX_3.4.19GLIBCXX_3.4.20GLIBCXX_3.4.21GLIBCXX_3.4.22GLIBCXX_3.4.23GLIBCXX_3.4原创 2021-07-21 14:18:45 · 1527 阅读 · 0 评论 -
手把手教你升级gcc到gcc11
gcc10已经支持了绝大部分的C++20的特性,跟着我一起升级gcc到10.x版本,然后尝试学习和使用C++20标准吧,关于C++20标准的特性,请参见:C++20标准下载 gcc源码git clone https://github.com/gcc-mirror/gcc.git安装依赖库待源码下载完成后,进入gcc目录,并切换到10.2.0分支:git checkout releases/gcc-10.2.0然后下载相关的依赖库:./contrib/download_prerequisit原创 2021-01-14 16:32:03 · 5151 阅读 · 4 评论 -
tmux常用命令及快捷键
tmux常用命令及快捷键最大化 Ctrl+b(我改成了Ctrl+a) 激活控制台;此时以下按键生效 系统操作 ? 列出所有快捷键;按q返回 d 脱离当前会话;这样可以暂时返回Shell界面,输入tmux attach能够重新进入之前的会话 D 选择要脱离的会话;在同时开启了多个会话时使用 Ctrl+z 挂起当前会话 r 强制重绘未脱离的会话 s .原创 2020-11-19 10:20:05 · 3181 阅读 · 0 评论 -
VScode必备插件
VScode 插件神器VScode 之所以受到追捧,正是因为 VScode 具有丰富插件功能并且安装非常简单。下面介绍一下这些非常实用的插件,有兴趣探索一下,一定会有所收获。1、Chinese(Simplified)Language Pack for Visual Studio CodeVScode默认安装后界面为英文,对于英文不是很好的同学,建议安装VScode后,应先安装此插件。2、Python想要在 VScode 上运行 Python 环境,按照如下操作即可:•1、系统上安原创 2020-10-23 15:11:03 · 5310 阅读 · 0 评论 -
cmake find_package的基本原理与详细示例(三):find_package的Module模式简单示例——查找第三方库(如:boost、gflags)
1、下载、构建boost,然后配置BOOST_ROOT环境变量(建议放在~/.bashrc文件中,然后执行:source ~/.bashrc)2、下载、构建 、安装glfags,这里放在了/usr/local目录3、查找和使用的CMakeLists.txt文件:cmake_minimum_required( VERSION 3.8 FATAL_ERROR)project(main LANGUAGES CXX) #set dirslist(APPEND CMAKE_MODULE_PATH原创 2020-10-20 18:46:02 · 1974 阅读 · 0 评论 -
Linux调试内存泄漏的工具——AddressSanitizer(ASan)
以前,我们调试内存泄漏,可能会使用下面的一种或几种工具: valgrind mtrace dmalloc ccmalloc memwatch debug_new 上面的工具,我也曾经使用过,这次介绍一个新的工具——AddressSanitizer(ASan)。该工具为gcc自带,4.8以上版本都可以使用,支持Linux、OS X、ios、freeBSD、Android等多种平台,不止可以检测内存泄漏,它其实是一个内存错误检测工具,可以检测的问题主要原创 2020-10-19 11:06:23 · 3621 阅读 · 2 评论 -
高速网卡solarflare
https://support.solarflare.com/wp/welcome1、性能比普通的网卡高很多2、使用起来简单方便3、开发接口构建方式:./scripts/onload_build --user64原创 2020-08-20 16:14:18 · 1478 阅读 · 0 评论 -
CMakeLists多目录通用模板
以一个通用组织的工程(包含PCL,VTK,libLAS第三方库)为示例,具有含义从英语意思进行理解工程目录结构├── shape│ ├── CMakeLists.txt│ ├── include│ │ ├── shape.h│ │ └── config.h│ └── src│ ├── shape.cpp│ └── config.cpp├── CMakeLists.txt├── point│ ├── CMakeLists.txt│ ├── include...原创 2020-08-10 09:03:52 · 3265 阅读 · 2 评论 -
linux使用ntpdate定时同步时间
linux操作系统同步时间的方案有很多,本小节主要讲通过crontab和ntpdate实现定时同步时间的功能:1、首先安ntpdate:yum install ntpdate -y2、安装完成以后,手动测试一下:sudo ntpdate 0.asia.pool.ntp.org 如果同步成功后,则会显示时间的差异: 有很多可以使用的时间同步服务器,列几个: ...原创 2018-11-20 18:51:34 · 10756 阅读 · 4 评论 -
Linux Epoll介绍和程序实例
1. Epoll 是何方神圣?Epoll 可是当前在 Linux 下开发大规模并发网络程序的热门人选, Epoll 在 Linux2.6 内核中正式引入,和 select 相似,其实都 I/O 多路复用技术而已 ,并没有什么神秘的。其实在 Linux 下设计并发网络程序,向来不缺少方法,比如典型的 Apache 模型( Process Per Connection ,简称 PPC ), TPC (转载 2017-06-01 13:51:21 · 475 阅读 · 0 评论 -
Linux函数调用与栈
原文地址:http://blog.csdn.NET/slvher/article/details/8831885栈与函数调用惯例(又称调用约定)— 基础篇 记得一年半前参加百度的校招面试时,被问到函数调用惯例的问题。当时只是懂个大概,比如常见函数调用约定类型及对应的参数入栈顺序等。最近看书过程中,重新回顾了这些知识点,对整个调用栈又有了较深入的理解。作为笔记,记录于此。转载 2017-06-05 17:31:36 · 2358 阅读 · 0 评论 -
Epoll工作模式详解
select poll epoll转载 2017-05-26 14:56:19 · 619 阅读 · 0 评论 -
Linux IPC通信方式
Linux进程间通信(IPC)有几种方式,下面将将简单的简述一下: 一。管道(pipe) 管道是Linux支持的最初IPC方式,管道可分为无名管道,有名管道等。 (一)无名管道,它具有几个特点: 1) 管道是半双工的,只能支持数据的单向流动;两进程间需要通信时需要建立起两个管道; 2) 无名管道使用pipe()函数创建,只能用于父子进程或者兄弟进程之间; 3) 管道对于通信的两端进程而言转载 2017-05-26 14:59:34 · 666 阅读 · 0 评论