Linux
月亮+六便士
本人从事C++嵌入式应用软件开发,做流媒体相关工作,后端开发
展开
-
深入理解Golang 中的Context包
深入理解Golang 中的Context包原创 2023-02-24 10:28:39 · 408 阅读 · 0 评论 -
Golang 实现定时任务
Golang 实现定时任务原创 2023-02-20 16:32:52 · 2036 阅读 · 0 评论 -
dpkg: 错误
dpkg: 错误: 另外一个进程已经为 dpkg frontend 加锁原创 2023-02-20 09:55:15 · 1458 阅读 · 0 评论 -
c++ std::call_once
在多线程中,有一种场景是某个任务只需要执行一次,可以用C++11中的std::call_once函数配合std::once_flag来实现。多个线程同时调用某个函数,std::call_once可以保证多个线程对该函数只调用一 次。原创 2023-02-15 14:04:23 · 1447 阅读 · 0 评论 -
c++ bind 函数讲解
c++ bind 函数讲解原创 2023-02-14 14:33:28 · 1815 阅读 · 0 评论 -
Centos8 出现Failed to download metadata for repo‘AppStream’「CentOS」
Centos8 出现Failed to download metadata for repo‘AppStream’「CentOS」原创 2023-02-14 10:58:04 · 751 阅读 · 0 评论 -
Centos8 出现Failed to download metadata for repo‘AppStream’「CentOS」
1、今天在centos8 系统,安装成功之后,运行 yum update 命令更新系统时报错:root@server ~]# yum updateCentOS-8 - AppStream 70 B/s | 38 B 00:00Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist2、原因:CentOS Linux 8 .原创 2022-03-28 15:12:40 · 1506 阅读 · 0 评论 -
centos创建共享目录
Centos8配置共享文件目录流程Windows下创建共享目录命名:warkspace虚拟=====????设置====????选项===????共享文件夹共享目录设置后,查看/mnt/hgfs/下面发现不显示设置的共享文件夹,重启设置都没有解决方法:方法一:重新安装VMware Tools(网上说采用这种方法,自己没有试)方法二:找到位于VMwore 安装目录下的linux.ios文件打开虚拟机,将linux.ios直接放置桌面,解压、进入 目录,执行./vmware-i原创 2021-08-12 14:28:18 · 767 阅读 · 0 评论 -
ubuntu后台运行的几种方法
1、使用“nohup”,即"nohup ./test.sh &"忽略hangup信号,防止终端关闭时程序退出。2、使用"setid"即“setsid ./test.sh”3、最简单,将命令放入括号中,比如:(./test &), 就这样行了原创 2021-07-07 17:19:56 · 3812 阅读 · 0 评论 -
Window 上登录samba,进去共享目录
步骤: 计算机(win10就 此电脑)-->右键-->[映射网络驱动器]-->文件夹位置填写自己centos服务地址+smb.conf设置的虚拟目录然后点击完成,最后输入创建的samba账号+密码点击确定。原创 2021-06-30 16:18:19 · 1473 阅读 · 0 评论 -
g++: internal compiler error: Killed (program cc1plus) 解决办法
1、出现问题的原因:内存不足,使用交换分区来解决sudo dd if=/dev/zero of=/swapfile bs=64M count=16#count的大小就是增加的swap空间的大小,64M是块大小,所以空间大小是bs*count=1024MBsudo mkswap /swapfile#把刚才空间格式化成swap格式sudo swapon /swapfile#使用刚才创建的swap空间之后继续执行相关操作就可以, 如果创建了临时空间之后仍提示“g++...原创 2021-05-24 09:09:17 · 2458 阅读 · 0 评论 -
vi中ctrl+s无响应后如何退出
vi操作中经常习惯性ctrl+s保存,此时会进入类似锁屏状态,任何键失灵据说这是linux一个古老的快捷键解锁方式 ctrl+q原创 2021-01-18 13:44:53 · 188 阅读 · 0 评论 -
五种I/O模型
I/O介绍I/O通常有内存IO、网络I/O、磁盘I/O等,但我们通常说的是网络I/O以及磁盘I/O。网络I/O本质是socket读取。每次I/O氢气,都会有两个阶段:第一步:等待数据,即数据从磁盘到内存,将数据从磁盘文件先加载到内核内存空间(缓冲区),等待数据准备完成,时间较长。第二步:复制数据,即数据内核内存到进程内存,将数据从内核缓冲复制到用户空间的进程内存中,时间较短。Web请求处理过程1、客户端发起情况到服务器网卡2、服务器网卡接收到请求和转交给内核处理3、内核根据...原创 2020-07-26 21:02:34 · 663 阅读 · 0 评论 -
Linux 下使用getaddrinfo和getnameinfo实现IP和域名相互转换
前言: IPv4中使用gethostbyname()函数完成主机名到地址解析,这个函数仅仅支持IPv4,且不允许调用者指定所需地址类型的任何信息,返回的结构只包含了用于存储IPv4地址的空间。IPv6中引入了新的APIgetaddrinfo(),它是协议无关的,既可用于IPv4也可用于IPv6。gethostbyname, gethostbyaddr是不可重入函数;已经被getaddrinfo, getnameinfo替代。可重入函数主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函...原创 2020-05-20 20:11:37 · 1373 阅读 · 0 评论 -
Linux内核调优部分参数说明
1、linux socket 缓存:core rmem_default rmem_max使用udp接收数据时:若没有调用setsokcetopt设置系统接收缓存,则接收缓存的大小为rmem_default。若程序调用setsocketopt设置系统接收缓存,则设置值不能超过rmem_max.系统会为每个udp_socket申请一份缓存空间,而不是共用同一份缓存。即每个udp socket都会有一个rmem_default大小的缓存空间(假设没有setsockopt设置)#接收套接字缓原创 2020-05-18 18:50:25 · 1074 阅读 · 0 评论 -
NetHogs监控Linux的每个进程流程
在日常运维环境中,我们肯定会遇到以下这种需求:1、网络流量异常,不知道是哪个程序的流量爆涨?2、日常需要监控网络实时的流量进去数据?基于此两点需求,分享两个很强大的命令工具:Nethogs Nload1.Nethogs1.1 Nethogs介绍NetHogs是一个开源的命令行工具(类似于Linux的top命令),用来按进程或程序实时统计网络带宽使用率。NetHogs是一个小型的net top工具,不像大多数工具那样拖慢每个协议或者是每个子网的速度而是按照进程进行带宽分组...原创 2020-05-13 20:45:58 · 451 阅读 · 0 评论 -
C++ spdlog日志库
spdlog 是一个快速的 C++ 日志库,只包含头文件,兼容 C++11。特性:非常快 只包含头文件 无需依赖第三方库 支持跨平台 - Linux / Windows on 32/64 bits 支持多线程 可对日志文件进行循环输出 可每日生成日志文件 支持控制台日志输出 可选的异步日志 支持日志输出级别 可自定义日志格式示例代码:#include "spd...原创 2020-04-14 16:31:19 · 1938 阅读 · 0 评论 -
如何使用Google日志库
Google Glog 是一个C++语言的应用级日志记录框架,提供了 C++ 风格的流操作和各种助手宏。1、开源项目首页已经从https://code.google.com/p/google-glog/迁移到https://github.com/google/glog。2、下载代码后,双击根目录下的google-glog.sln3、在解决方案下有四个工程:libglog(是动态链接库...原创 2020-03-19 16:03:09 · 1178 阅读 · 2 评论 -
升级Cmake详细步骤
1.查看当前版本,并卸载#cmake --versionsudo yum remove cmake cmake-data2.获取新版本源码wget https://cmake.org/files/v3.9/cmake-3.9.2.tar.gz3.编译该源码,并创建软连接tar -zxvf cmake-3.9.2.tar.gz./configurem...原创 2020-03-11 09:43:00 · 3099 阅读 · 0 评论 -
网络排查监听端口
方法一:netstatzljump@test-pressure-zlstream-01 ~]$ netstat -anp | grep "sdu"(No info could be read for "-p": geteuid()=1002 but you should be root.)[xzljump@test-pressure-zlstream-01 ~]$ sudo netst...原创 2020-03-10 15:49:22 · 780 阅读 · 0 评论 -
Linux c++/c UTF-8 GB2312中文转码实现
#include <iconv.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#define OUTLEN 255 //代码转换:从一种编码转为另一种编码int code_convert(char *from_charset,char *to_charset...原创 2020-03-10 15:25:45 · 1592 阅读 · 0 评论 -
在Linux终端快速检测网站是否宕机的6个方法
前沿 你可能已经了解了一些类似的命令,像ping、curl和wget。我们在本教程中又加入了一些其他命令。同时,我们也加入了不同的选项来检测单个和多个主机的信息。本文将帮助你检测网站是否宕机。但是如果你在维护一些网站,希望网站宕掉时得到实时的报警,我推荐你去使用实时网站监控工具。这种工具有很多,有些是免费的,大部分收费。根据你的需求,选择合适的工具。在后续的文章中我们会涉及...原创 2020-02-09 16:48:49 · 1357 阅读 · 0 评论 -
Linux 系统more命令
在使用linux 时,经常需要查看文件内容或者log日志,通常情况是选择cat命令但是有时候我们的文件很长,超出了一个屏幕,这样查看上面的就不方便。虽然可以按住shift键,再按pageup、pagedown来上下翻页,但是太麻烦!这时候就可以使用more命令来查看。 more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页...原创 2020-02-08 19:17:47 · 497 阅读 · 0 评论 -
Linux快速查询表
显示所有硬件信息: inxi -Fxz 或 hwinfo --short 或 lshw -shortCPU 信息: lscpu 或 lshw -C cpu显示 CPU 功能(例如 PAE、SSE2): lshw -C cpu | grep -i capabilities报告 CPU 位数: lshw -C cpu | grep -i width显示当前内存大小和配置: dmi...原创 2020-02-08 11:19:10 · 453 阅读 · 0 评论 -
Linux查找某一个库是否含有该方法
linux查看动态库.so导出函数列表方法一 objdump命令例如:objdump -tT xxx.soroot@localhost:/usr/local/wang/AAC/zlstream/bin# objdump -tT libprotobuf.so.13.0.0|grep SerializeToString00000000000d7830 g F .text 0...原创 2019-12-23 11:49:04 · 493 阅读 · 0 评论 -
CentOS7安装与配置Samba服务器流程
CentOS7安装与配置Samba服务器流程1、最小化安装CentOS7并设置好IP联网后,可以使用yum方式安装samba,如果并不确定是否有安装samba,可以使用下面命令查看:rpm -qa | grep samba如果如图所示为空,则说明未安装samba相关程序2、安装samba很简单,在联网情况下使用如下命令即可: yum install s...原创 2019-12-17 21:56:58 · 1251 阅读 · 0 评论 -
linux目录
1、linux的目录结构也有规律 应用程序 /usr/bin 数据文件 /usr/share 配置文件 /etc/ 启动命令 /etc/init.d小结:1、linux 的所有目录结构是一个有层次的倒挂着的树形结构。2、根“/”是所有目录的顶点3、目录结构和分区设备是没有关系的。也就是说不同的目录可以跨越不同的磁盘设备或者...原创 2019-12-17 13:49:31 · 83 阅读 · 0 评论 -
linux系统中如何查看日志 (常用命令)
日志文件说明/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一/var/log/secure 与安全相关的日志信息/var/log/maillog 与邮件相关的日志信息/var/log/cron 与定时任务相关的日志信息/var/log/spooler 与UUCP和news设备相关的日志信息/var/log/boot...原创 2019-12-11 20:34:18 · 126 阅读 · 0 评论 -
makefile 实例讲解
1、makefile 是什么?makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。makefile的好处就是:—“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具...原创 2019-11-17 22:23:45 · 1245 阅读 · 0 评论 -
Linux 程序员必须掌握的基本指令
1.日志查看实时查看tomcat日志文件查看:cd /home/tomcat/logs #也可用相对目录``tail –f catalina.out #实时打印日志文件``ctrl+c #退出查看查看日志命令:tail -f log.txt:循环查看tai -500f log.txt:查看最后500行cat file:查看短文件less file:查看长文件...原创 2019-11-12 22:57:26 · 221 阅读 · 0 评论