
Linux
文章平均质量分 57
Michael.Scofield
C++程序猿
展开
-
debian apt error: Package ‘xxx‘ has no installation candidate
新的debian虚拟机可能会出现这个问题。原创 2023-08-23 00:04:19 · 1317 阅读 · 0 评论 -
firewall-cmd放行端口时报错
dbus服务未启动:firewall-cmd命令需要与dbus进行通信,但是dbus服务可能没有启动。可以尝试手动启动dbus服务。原创 2023-08-20 14:54:47 · 1295 阅读 · 0 评论 -
C++之const_cast的用法
C++规则的设计目标之一是,保证“类型错误”绝对不可能发生,理论上如果你的程序很“干净”的通过编译,就表示它并不企图在任何对象上执行任何不安全、无意义、愚蠢荒谬的操作。这是一个极具价值的保证,可别草率的放弃它。原创 2023-03-04 20:42:20 · 1145 阅读 · 0 评论 -
C++执行命令行并获取输出
emsp;在程序开发中,经常需要通过执行命令行操作来拿到一些系统信息,比如获取进程信息,获取系统所有用户等等,在这种情况下我们不但需要执行命令行,还需要拿到命令行的返回结果。C++提供了一个system函数,可以执行指定的cmd,但是只能返回一个执行结束的状态,不能获得执行后的结果,很多场景下都是没办法满足我们的需求的,所以需要我们自己来造轮子。原创 2023-02-28 14:30:00 · 5631 阅读 · 0 评论 -
C++使用shared_ptr与weak_ptr轻松管理内存
shared_ptr有一个特别好的性质是:它会自动使用它的"每个指针专属的删除器",因而消除另一个潜在的客户错误:所谓的 "cross-DLL problem"。这个问题发生于“对象在动态链接程序库(DLL)中被new创建,却在另一个DLL内被delete销毁“。在许多平台上,这一类“跨DLL之new/delete成对运用”会导致运行期错误。 shared_ptr没有这个问题,因为它缺省的删除器是来自"shared_ptr诞生的那个DLL"的delete。原创 2023-02-26 01:38:35 · 768 阅读 · 0 评论 -
TimeWheel时间轮算法原理及实现(附源码)
时间轮算法是一种调度模型,可以有效地利线程资源来处理批量周期任务,时间轮调度模型将数量巨大的定时任务绑定在单个调度器上,并统一使用这个调度器来管理,触发以及执行任务.这种模型使得大量延时任务,周期任务以及通知任务的管理变得高效.原创 2023-02-25 02:27:19 · 4310 阅读 · 0 评论 -
fopen与fdopen,lstat与fstat的区别
stat区别于另外两个系统调用的地方在于,fstat系统调用接受的是 一个“文件描述符”,而另外两个则直接接受“文件全路径”。(如管道和网路通信等),这时必须先调用设备专用函数以获得一个文件描述符,然后再用fdopen使一个标准I/O与该文件描述符相结合。也就是说调用fdopen时,文件已经存在了(即使不存在时,在open()这一步已经创建完了)。打开已存在的文件描述符,使标准I/O流与该文件相结合。,它们都是用来返回“相关文件状态信息”的,三者的不同之处在于设定源文件的方式不同。否则,应返回空指针,原创 2023-02-16 20:51:53 · 576 阅读 · 0 评论 -
一文搞懂Linux的标准输出/错误重定向
Linux系统,有一个非常重要概念,就是一切皆文件。在使用shell脚本时,系统为了能够进行接收外部输入,同时向外部输出,将三个文件始终保持在打开的状态,并使用三个文件描述符0,1,2来分别指向这三个文件,以此来完成标准输入,标准输出,标准错误输出。原创 2023-02-15 23:55:49 · 13697 阅读 · 1 评论 -
C++之std::string的resize与reverse
在C++中我们经常用std::string 来保存字符串,其中有两个比较常用但是却平时容易被搞混的两个函数,分别是resize和reserve,模糊意识里,这两个方法都是对std::string的容量或元素进行操作,那么这两个函数到底做了什么呢?原创 2023-02-15 00:33:47 · 1871 阅读 · 0 评论 -
使用Xmake-API来构建项目
上一文我们介绍了Xmake的基本命令,使用Xmake的命令来构建项目基本等同于使用直接使用g++来构建,所以只有在项目比较简单时我们可以选择使用命令来构建,但是当项目比较复杂时,可以使用xmake.lua来配置项目的构建过程。原创 2023-02-14 00:02:07 · 770 阅读 · 0 评论 -
Xmake构建之基本命令与用法
在Windows以及MacOS开发中,我们都可以使用图形化界面来构件工程,极大的方便了我们的开发流程,但是在linux开发中,总是需要借助Cmake/Makefile等工具,来编写编译的命令和代码,这使得维护起来非常不方便,特别是当项目的依赖变多,以及项目之间互相依赖时,简直让人头大😭,然而,有一款Xmake的构建工具最近开始非常流行,这款工具没有晦涩和反人类的语法,只需要简单的配置一下就可以完成项目的构建原创 2023-02-13 00:52:17 · 2062 阅读 · 0 评论 -
【linux 虚拟机扩充虚拟磁盘大小】
虚拟机原创 2022-06-25 17:28:19 · 558 阅读 · 0 评论 -
MySql 避免字符编码问题的相关配置
1.设置my.cnf 为全局使用utf8mysql -h localhost -P 3306 -u root -p #输入密码进入status; #查看当前MySQL运行状态此时再在命令行输入:show variables like 'character_set%'; #查看MySQL字符集除了character_set_filesystem外,其余都应该为utf8编码,如果不是,则修改配置文件,增加如下配置vi /etc/my.cnf #根据个人配置找到相应文件#在[client]原创 2022-05-14 00:13:18 · 287 阅读 · 0 评论 -
Centos配置动态库
指定运行时动态库位置的三种方式在Linux 中,动态库的搜索路径除了默认的搜索路径外(/lib和/usr/lib),可通过三种方法指定:方法一:在配置文件/etc/ld.so.conf中指定动态库搜索路径;方法二:通过环境变量LD_LIBRARY_PATH指定动态库搜索路径;方法三:在编译目标代码时指定该程序的动态库搜索路径。1.通过配置文件修改/etc/ld.so.conf文件。其文件内容为:[root@]# cat /etc/ld.so.confinclude ld.so.conf转载 2022-05-13 21:14:25 · 2089 阅读 · 0 评论 -
【linux 共享内存 】
linux 共享内存原创 2022-05-05 22:04:31 · 267 阅读 · 0 评论 -
【ftp 上传文件失败】
修改文件权限检查本地目录文件和远程服务器目录文件的文件权限是否为可读写,使用chown命令和chmod命令修改文件的拥有者和可操作属性为rwchown ftpuser /ftplocalpathnamechown ftpuser /ftpremotepathnamechmod 731 /ftplocalpathname /ftpremotepathname //7表示文件的拥有者对该文件可读可写可执行ls -l ls -l ===》chmod===》...原创 2022-05-04 14:51:23 · 741 阅读 · 1 评论 -
【linux--设置程序开机自动启动】
使用/etc/rc.localrc.local是在登录界面之前运行的一个文件,想要开机执行某个文件或者命令的话,可以在/etc/rc.local 在该文件内末尾,写入要执行的文件。rc.local指向/etc/rc.d/rc.local[dog@myyuncentos idc]$ ls -l /etc/rc.locallrwxrwxrwx. 1 ftptdx root 13 Mar 17 16:26 /etc/rc.local -> rc.d/rc.local1.需要使用root启动程序,原创 2022-04-30 00:46:19 · 496 阅读 · 0 评论 -
【远程服务器被试图破解】
今天登录远程服务器时,出现There were 298 failed login attempts since the last successful login.系统正在遭受暴力破解的风险措施1.首先拉黑试图破解你的密码的ip>>> grep "Failed password for invalid user" /var/log/secure | awk '{print $13}' | sort | uniq -c | sort -nr>>>> c原创 2022-04-29 23:41:47 · 836 阅读 · 0 评论 -
【Centos7进入root权限是报错:sudo: /etc/sudo.conf is owned by uid 1000, should be 0】
将远程服务器设置为禁止使用root登录,在使用用户登录后,进入root权限失败,这是由于在Centos上安装ftp服务时错误的批量修改了系统根目录全部文件的权限,导致进入root权限时出现报错:sudo: /etc/sudo.conf is owned by uid 1000, should be 0sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set执行命令chown root:root /etc/sudo原创 2022-04-29 23:27:21 · 9711 阅读 · 0 评论 -
【远程服务器登录失败 Network error:Connection refused】
登录云服务器时出现:输入/etc/init.d/sshd start出现/var/empty/sshd must be owned by root and not group or world-writable原因:在前天晚上批量修改了服务器源目录下的一些文件权限,导致某些目录不能访问了解决方法: chown -R root.root /var/empty/sshd chmod 744 /var/empty/sshd service sshd restart...原创 2022-04-27 21:03:19 · 1267 阅读 · 0 评论 -
【centos7 FTP服务器配置】
FTP Centos原创 2022-04-26 16:51:48 · 2875 阅读 · 0 评论 -
linux -nginx
linux nginx原创 2022-01-26 15:31:15 · 1759 阅读 · 0 评论 -
Centos8 安装Mysql
Centos8安装原创 2022-01-12 17:11:10 · 328 阅读 · 0 评论 -
Centos8-使用Squid配置简单的代理服务器
Centos、代理服务器、Squid原创 2022-01-10 16:39:25 · 3676 阅读 · 0 评论 -
Shell:基本语法
Shell概述Shell脚本入门1.脚本格式2.创建一个Shell脚本:HelloWorldtdx96@ubuntu:~/datas$ touch hellworld.shtdx96@ubuntu:~/datas$ vim hellworld.sh输入:#!/bin/bashecho "helloworld today"执行:tdx96@ubuntu:~/datas$ sh hellworld.shhelloworld today或者tdx96@ubuntu:~/data原创 2021-08-16 17:04:57 · 213 阅读 · 0 评论 -
Clion:远程调试Linux下的C++
Clion:远程调试Linux下的C++1.File->Settings2.Toolchains3.添加远程主机4.设置主机参数5.保存设置6.远程主机中需要安装了cmake,没安装的话会检测失败。7.设置本地文件夹和远程主机文件夹9.上传到主机10.上传成功1.File->Settings2.Toolchains3.添加远程主机4.设置主机参数5.保存设置6.远程主机中需要安装了cmake,没安装的话会检测失败。7.设置本地文件夹和远程主机文件夹8.修改本地文原创 2021-07-05 16:39:28 · 730 阅读 · 0 评论 -
Linux:muduo编译报错SocketsOps.cc
muduo编译时报错:SocketsOps.cc:154:12: error: ‘::readv’ has not been declaredreturn ::readv(sockfd, iov, iovcnt);解决方法:1.进入muduo下的net文件夹cd muduo/cd net/进入SocketsOps.cc文件vim SocketsOps.cc2.修改源码将源码 ssize_t sockets::readv(int sockfd, const struct iovec原创 2021-07-05 15:49:23 · 306 阅读 · 0 评论 -
Linux :muduo编译报错
编译muduo时报错error: typedef ‘T_must_be_complete_type’ locally definedbut not used [-Werror=unused-local-typedefs] typedef char T_must_be_complete_type[sizeof(T) == 0 ? -1 : 1];解决方案:把 muduo目录里面的CMakelist.txt中的 -Wall 去掉就可以编译通过了,gcc4.8以上在这个参数上附加了[-Werro原创 2021-07-05 15:27:57 · 699 阅读 · 0 评论 -
Linux下网络编程一
一. 库函数connect()向服务器发起连接请求。函数声明:int connect(int sockfd, struct sockaddr * serv_addr, int addrlen);函数说明:connect函数用于将参数sockfd 的socket 连至参数serv_addr 指定的服务端,参数addrlen为sockaddr的结构长度。返回值:成功则返回0,失败返回-1,错误原因存于errno 中。connect函数只用于客户端。如果服务端的地址错了,或端口错了,或服务端没有原创 2021-04-27 15:52:46 · 100 阅读 · 0 评论 -
Linux下Socket编程:bind().Address already in use的解决方法
当客户端保持着与服务器端的连接,这时服务器端断开,再开启服务器时会出现: Address already in usr可以用netstat -anp | more 可以看到客户端还保持着与服务器的连接(还在使用服务器bind的端口)。这是由于client没有执行close,连接还会等待client的FIN包一段时间。解决方法是使用setsockopt,使得socket可以被重用,是最常用的服务器编程要点。具体的做法为是,在socket调用和bind调用之间加上一段对socket的设置: int op原创 2021-04-22 21:51:02 · 3047 阅读 · 0 评论 -
在windows下修改Linux的文件
工具:Notepad++打开notepad++,依次按照以下步骤进行。先点addnew添加Linux的ip,然后Hostname填Linux主机的ip,Connection type选择SFTP,Username和Password填对应的Linux的用户名和密码,Port和Timeout默认,Intinal remote direction选择你想要连接到哪个目录下,可以先填 / 看下效果。设置完直接点击close。这样就链接到了Linux的文件夹下,可以在Windows上修改了。原创 2021-04-22 13:47:48 · 1625 阅读 · 0 评论 -
Linux下安装QT:You don t seem to have make or gmake in your PATH Cannot proceed
解决方法:sudo apt-get install build-essential原创 2021-04-21 19:51:30 · 536 阅读 · 0 评论