01 2021 档案
摘要:转载自:https://blog.csdn.net/qq_42894896/article/details/84451152 消息队列常见的 5 个应用场景 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题,实现高性能、高可用、可伸缩和最终一致性架构,使用较多的消息
阅读全文
摘要:二级页表可以不存在 为什么不分级的页表就做不到这样节约内存呢?我们从页表的性质来看,保存在主存中的页表承担的职责是将虚拟地址翻译成物理地址;假如虚拟地址在页表中找不到对应的页表项,计算机系统就不能工作了。所以页表一定要覆盖全部虚拟地址空间,不分级的页表就需要有1M个页表项来映射,而二级页表则最少只需
阅读全文
摘要:《Linux-UNIX系统编程手册》
阅读全文
摘要:转载自:https://blog.csdn.net/qq_34793133/article/details/80087727 互斥量和信号量的区别 1. 互斥量用于线程的互斥,信号量用于线程的同步。 这是互斥量和信号量的根本区别,也就是互斥和同步之间的区别。 互斥:是指某一资源同时只允许一个访问者对
阅读全文
摘要:本文转载自:Linux命令大全 https://man.linuxde.net/gcc gcc命令使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,编译代码支持性能优化等特点。现在很多程序员都应用GCC,怎样才能更好的应用GCC。目前,GCC可以用来编译C/C
阅读全文
摘要:#include <string>#include <iostream> using namespace std; int main() { string s; getline(cin,s); cout << s; return 0; }
阅读全文
摘要:scanf() 读取字符串时以空格为分隔,遇到空格就认为当前字符串结束了,所以无法读取含有空格的字符串。 gets() 认为空格也是字符串的一部分,只有遇到回车键时才认为字符串输入结束,所以,不管输入了多少个空格,只要不按下回车键,对 gets() 来说就是一个完整的字符串。 也就是说,gets()
阅读全文
摘要:gcc ./* -o output
阅读全文
摘要:最常见的chmod 777 xxxx指令,这里有3个7,但是每个7的含义是不同的。7的二进制形式为111,表示可读可写可执行,第1个7表示文件对于文件所有者来说可读可写可执行;第2个7表示文件对于文件所有者所在组来说可读可写可执行;第3个7表示文件对于其他身份的用户来说可读可写可执行。也就是说,通过
阅读全文
摘要:EPOLLIN - 当关联的文件可以执行 read ()操作时。 EPOLLOUT - 当关联的文件可以执行 write ()操作时。 EPOLLRDHUP - (从 linux 2.6.17 开始)当socket关闭的时候,或者半关闭写段的(当使用边缘触发的时候,这个标识在写一些测试代码去检测关闭
阅读全文
摘要:epoll模式中事件可能被触发多次,比如socket接收到数据交给一个线程处理数据,在数据没有处理完之前当前socket又有新数据达到触发了事件,另一个线程被激活获得该socket,从而产生多个线程操作同一socket,即使在ET模式下也有可能出现这种情况。采用EPOLLONETSHOT事件的文件描
阅读全文
摘要:函数原型 char *strchr(const char *str, int c) 参数 str-- 要被检索的 C 字符串。 c-- 在 str 中要搜索的字符。 功能 在参数str所指向的字符串中搜索第一次出现字符c(一个无符号字符)的位置。 返回值 返回一个指向该字符串中第一次出现的字符的指针
阅读全文
摘要:strspn(返回字符串中第一个不在指定字符串中出现的字符下标) 头文件 #include <string.h> 定义函数: size_t strspn (const char *s,const char * accept); 简单的说,若strspn()返回的数值为n,则代表字符串s 开头连续有n
阅读全文
摘要:函数说明 strcasecmp()用来比较参数s1和s2字符串,比较时会自动忽略大小写的差异。 返回值:若参数s1和s2字符串相同则返回0,s1长度大于s2长度则返回大于0 的值,s1 长度若小于s2 长度则返回小于0的值. 函数说明:strncasecmp()用来比较参数s1和s2字符串前n个字符
阅读全文
摘要:转载自:https://www.jb51.net/article/71509.htm 头文件:#include <string.h> strpbrk()函数检索两个字符串中首个相同字符的位置,其原型为: char *strpbrk( char *s1, char *s2); 【参数说明】s1、s2要
阅读全文
摘要:转义字符意义ASCII码值(十进制) \o 空字符(NULL) 0 \a 响铃(BEL) 007 \b 退格(BS) ,将当前位置移到前一列 008 \f 换页(FF),将当前位置移到下页开头 012 \n 换行(LF) ,将当前位置移到下一行开头 010 \r 回车(CR) ,将当前位置移到本行开
阅读全文
摘要:转载自:https://www.jianshu.com/p/c4dc22699a42 CGI 早期的Web服务器,只能响应浏览器发来的HTTP静态资源的请求,并将存储在服务器中的静态资源返回给浏览器。随着Web技术的发展,逐渐出现了动态技术,但是Web服务器并不能够直接运行动态脚本,为了解决Web服
阅读全文
摘要:转载自:https://www.jianshu.com/p/ad29c92324a1 线程阻塞状态 线程从创建、运行到结束总是处于下面五个状态之一:新建状态、就绪状态、运行状态、阻塞状态及死亡状态。 所谓阻塞状态是正在运行的线程没有运行结束,暂时让出CPU,这时其他处于就绪状态的线程就可以获得CPU
阅读全文
摘要:1.什么是UNIX域套接字Unix域协议并不是一个实际的协议族,而是在单个主机上执行客户/服务通信的一种方式。是进程间通信(IPC)的一种方式。它提供了两类套接字:字节流套接字(有点像TCP)和数据报套接字(有点像UDP)UNIX域数据报服务是可靠的,不会丢失消息,也不会传递出错。IP协议标识客户服
阅读全文
摘要:printf("%d,%d,%d,%d,%d,%d,%d\n",POLLIN,POLLRDNORM,POLLRDBAND,POLLPRI,POLLOUT,POLLERR, POLLRDHUP); 上面一行代码的输出为: 1,64,128,2,4,8,8192 根据事件参数对应的二进制值,我们可以知道
阅读全文
摘要:转自:《Linux高性能服务器编程》,游双著
阅读全文
摘要:转载自:https://blog.csdn.net/YMY_mine/article/details/81212731 一、ET模式(边沿触发)的文件描述符(fd): 当epoll_wait检测到fd上有事件发生并将此事件通知应用程序后,应用程序必须立即处理该事件,因为后续的epoll_wait调用
阅读全文
摘要:sudo apt-get -y install: -y:yes,在命令行交互提示中,直接输入 yes; sudo apt-get -f install -f:解决包依赖的问题
阅读全文
摘要:Linux 开启端口监听 通过命令:nc -help,可以来查看 nc 命令的使用描述。使用命令:nc -lk 8888即可开启监听 8888 端口号 如果出现-bash: nc: command not found,可以通过命令:yum install nc 安装 nc 。 参考链接:https:
阅读全文
摘要:转载自:https://blog.csdn.net/linux_ever/article/details/50515632 ubuntu 14.04中打开echo、daytime等标准服务详细实例图解 tcp/ip多数提供了一些标准因特网服务,如echo(回显)、daytime(时间获取)、disc
阅读全文
摘要:转载自:https://www.phpyan.com/%E8%AE%A1%E7%AE%97%E6%9C%BA/336.html 一)首先检查下echo服务有没有开启, sudo netstat -ant 看有没有监听 7 端口 如果有监听,表示echo服务已经开启了。如果没有继续下一步 二)检查是否
阅读全文
摘要:转载自:https://blog.csdn.net/lglglgl/article/details/46932001 以root身份登录,然后输入 usermod -g root username 执行完后username即归属于root组了,可以再输入 id username查看输出验证一下,如果
阅读全文
摘要:chown 命令,可以认为是 "change owner" 的缩写,主要用于修改文件(或目录)的所有者,除此之外,这个命令也可以修改文件(或目录)的所属组(不推荐,修改所属组通常使用 chgrp 命令)。当需要修改所有者时,可使用如下 chown 命令的基本格式: [root@localhost ~
阅读全文
摘要:《Linux高性能服务器编程》 游双
阅读全文
摘要:<signal.h>中 signal()函数的声明: /* Type of a signal handler. */ typedef void (*__sighandler_t) (int); extern __sighandler_t signal (int __sig, __sighandler
阅读全文
摘要:从指针的层次上理解函数——函数的函数名实际上就是一个指针,函数名指向该函数的代码在内存中的首地址 对此,我们写如下代码做测试: int fun(int a) { return a; } int main() { cout << fun(22) << endl; cout << (*fun)(33)
阅读全文
摘要:kill 信号列表 SignalDescriptionSignal number on Linux x86[1] SIGABRT Process aborted 6 SIGALRM Signal raised by alarm 14 SIGBUS Bus error: "access to unde
阅读全文
摘要:头文件<stdio.h> C 库函数 void perror(const char *str) 用来将上一个函数发生错误的原因输出到标准设备(stderr)。参数 s 所指的字符串会先打印出,后面再加上错误原因字符串。此错误原因依照全局变量errno的值来决定要输出的字符串。 在库函数中有个errn
阅读全文
摘要:$ kill -s 9 1827 其中-s 9 传递给进程的信号是9,即强制、尽快终止进程。
阅读全文
摘要:头文件 <stdlib.h> C 库函数 void exit(int status) 立即终止调用进程。任何属于该进程的打开的文件描述符都会被关闭,该进程的子进程由进程 1 继承,初始化,且会向父进程发送一个 SIGCHLD 信号。 EXIT_SUCCESS 和 EXIT_FAILURE 是常量,其
阅读全文
摘要:fd file descriptor 文件描述符 eg: sockfd
阅读全文
摘要:机器环境:Lubuntu-16.04 首先查看 /usr/include 目录下的 unistd.h 其中有这样两行: 220 #include <bits/types.h> 263 typedef __pid_t pid_t; 即:pid_t 是 __pid_t 的别名。 由此,我们到 /usr/
阅读全文
摘要:转载自:https://blog.csdn.net/vener_/article/details/89914752 工具->编译选项 下配置的内容是: 二进制 %MINGW%\bin 库 %MINGW%\lib C包含 %MINGW%\include C++包含 %MINGW%\include
阅读全文
摘要:转载自:https://jeremybai.github.io/blog/2014/09/10/size-t 之前在《内存拷贝的注意事项》一文中提到过size_t,可能许多人对这个类型不太熟悉没有用过或者根本不敢去用,最近看到一篇文章对这个类型讲的比较详细,便翻译过来让不熟悉的同学可以知道它产生的原
阅读全文
摘要:(1)clear 这个命令将会刷新屏幕,本质上是让终端显示页向后翻了一页,向上滚动屏幕还可以看到之前的操作信息。 (2)ctrl+l(等价clear) (3)reset 这个命令将完全刷新终端屏幕,之前的终端输入操作信息将都会被清空。 (4)另外介绍一个用别名来使用清屏命令的方法,如下: [root
阅读全文
摘要:在使用find / -name 时,会打印很多含“permission denied”错误无用信息 解决办法: find / -name "g++*" 2>&1 | grep -v "Permission denied" 0表示标准输入, 1表示标准输出, 2表示标准错误 这条命令的意思是把 "标准
阅读全文
摘要:sudo apt autoremove open-vm-tools sudo apt install open-vm-tools-desktop 第一行为卸载旧的vmtools,第二行为安装新的vmtools。 如果旧的vmtool不是使用apt安装的则无法通过这种方法卸载。此时可以直接安装新的。
阅读全文
摘要:网络配置: ifconfig、 ip 连通性探测: ping、 traceroute、 telnet、 mtr 网络连接: netstat、 ss、 nc、 lsof 流量统计: ifstat、 sar、 iftop 交换与路由: arp、 arping、 vconfig、 route 防火墙: i
阅读全文
摘要:1.使用命令打开sudoers文件 sudo vim /etc/sudoers 2.到下面一行,在root下面添加一行 andersen ALL=(ALL:ALL) ALL [用户名] ALL=(ALL:ALL) ALL 完成。
阅读全文
摘要:Lubuntu: 1.找到 最下方的 “软件与更新”(Software & Updates) 2. 选择 Other... , 3.选择 mirrors.aliyun.com,并保存修改 Ubuntu: 方法类似,找到“软件与更新”,更换为“aliyun”
阅读全文
摘要:使用vim修改文件报错,系统提示如下: E37: No write since last change (add ! to override) 故障原因: 文件为只读文件,无法修改。 解决办法: 使用命令:w!强制存盘即可,在vim模式下,键入以下命令: :w!
阅读全文
摘要:grep grep 命令用于在文本中执行关键词搜索,并显示匹配的结果,格式为 “grep [选项] [文件]” 。 example: grep test *file 在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行 grep -r update /e
阅读全文
摘要:二分查找使用:left + (right - left) / 2,避免(left+right)出现溢出
阅读全文
摘要:逻辑左移=算数左移,右边统一添0 逻辑右移,左边统一添0 算数右移,左边添加的数和符号有关,左侧添加符号位。即正数添0,负数添1。 如果负数要进行逻辑右移,可将其转换为unsigned类型。 左移运算符(<<) 左移运算符是用来将一个数的各二进制位左移若干位,移动的位数由右操作数指定(右操作数必须是
阅读全文
摘要:list<pair<int,int>> li ; li.push_front({23,1}); //对 li.emplace_front(23,1); //对 //li.push_front(1,2) ; //错 //li.emplace_front({1,2}) ; //错 li.emplace_
阅读全文
摘要:#include <list> #include <iterator> …… list<int> li = {1,2}; list<int>::iterator it = prev(li.end()); //此时 it 指向 2
阅读全文
摘要:class Solution { private: vector<vector<bool>>* haveVisit; vector<vector<int>> memo; public: bool exist(vector<vector<char>>& board, string word) { ha
阅读全文
摘要:int main(){ vector<vector<int>> ans; ans.emplace_back({1,1,1}); //报错 ans.push_back({1,1,1}); //OK return 0; }
阅读全文
摘要:void quickSort(vector<int>& nums, int start, int end){ if(start >= end) return; int left = start, right = end; int pivot = nums[left]; while(left < ri
阅读全文
摘要:构造函数: 先基类 后子类 子类构造函数可能需要使用基类元素 析构函数: 先子类 后基类 Father *pfather=new Son; delete pfather; 如果基类的析构函数不定义为虚函数的话,此时,只有基类会被析构,子类不会被析构。 所以,如果一个类有可能被继承的话,应将其析构函数
阅读全文
摘要:bool check_size(string s, int sz) { return s.size() >= sz; } int main() { vector<string> strs = { "axx", "css", "bww", "ssdde", "awweerf" }; int sz =
阅读全文
摘要:求解 x的n次方 class Solution { public: double myPow(double x, int n) { if(n == 0 || x == 1) return 1; double ans = 1; long k = n; if(k < 0){ k = -k; x = 1/
阅读全文
摘要:转载自:https://www.cnblogs.com/1miharu/p/11333297.html /* 底数 指数(二进制) sum 初始 3 1101 3^1 3^2 110 3^1 3^4 11 3^1 * 3^4 3^8 1 3^1 * 3^4 * 3^8 --> 3^13 */ #in
阅读全文
摘要:转载自:https://leetcode-cn.com/problems/zhong-jian-er-cha-shu-lcof/solution/4chong-jie-fa-di-gui-zhan-dui-lie-by-sdwwld/ 方法一:使用栈解决 如果使用栈来解决首先要搞懂一个知识点,就是前
阅读全文
摘要:ListNode* reversePrint(ListNode* head) { //*******************链表反转********************* ListNode* last = nullptr; ListNode* cur = head; while(cur != n
阅读全文
摘要:int main() { deque<int> b = {1,2,3}; list<int> c = {4,5,6}; vector<int> a1(vector<int>{b.begin(),b.end()}); vector<int> a2(vector<int>{c.begin(),c.end
阅读全文
摘要:转载自:https://blog.csdn.net/li1194094543/article/details/105610044 C++ STL 的实现: 1.vector 底层数据结构为数组 ,支持快速随机访问 2.list 底层数据结构为双向链表,支持快速增删 3.deque 底层数据结构为一个
阅读全文
摘要:参考链接: https://www.jianshu.com/p/6d92b7a01856 https://blog.csdn.net/u012206617/article/details/90294421 功能说明 在python开发中,我们可能会遇到一种情况,就是当前的项目依赖的是某一个版本,但是
阅读全文
摘要:Linux在终端中输入命令“su”就能获取root限。 1、在电脑上同时按住“Ctrl+Alt+T”按键,打开一个权运行命令的终端 2、在终端命令窗口输入命令“sudo passwd root”,然后输入登录密码 3、最后输入命令“su”,然后再输入一次密码,就获取到系统的root权限了 转载自:h
阅读全文
摘要:转载自:https://blog.csdn.net/qq_41989372/article/details/85128271 首先我们需要在联网的情况下登录github账号(注明:以下情况都是在假设从零开始的,如果有些步骤之前已经完成了那么在这里面,你完全可以跳过) 下面我们假设没有进行事先配置gi
阅读全文
摘要:转载自:https://www.jb51.net/LINUXjishu/179430.html linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可。直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字-r 就是向
阅读全文
摘要:转载自:https://www.fujieace.com/linux/permission-denied.html 一、Permission denied 是指什么? Permission denied 翻译过来的意思是:权限被拒绝;相信大家都知道,文件权限是读(r)、写(w)、执行(x); 二、为
阅读全文
摘要:转载自:http://www.linya.pub/ Bookmarks 高并发系统之限流特技动态链接库中函数的地址确定 PLT和GOTLinux 中的各种栈:进程栈 线程栈 内核栈 中断栈Redis和Memcached的区别epoll内核源码详解+自己总结的流程后台开发面试问题整理Linux内核:p
阅读全文
摘要:/* * File: Client.c * Author: root * * Created on 2012年6月20日, 下午1:30 */ #include <stdio.h> #include <stdlib.h> #include <sys/socket.h> #include <strin
阅读全文
摘要:Linux下使用traceroute IP地址出现星号,一般原因是linux的traceroute默认使用tcp或udp,强制使用ICMP就行了。执行: traceroute -I www.baidu.com //I大写
阅读全文
摘要:时间复杂度O(n*logn):每次输出堆顶元素,输出n-1次,每次输出完之后对堆进行调整,每次调整的时间复杂度是O(logn),即二叉树的高度h。
阅读全文

浙公网安备 33010602011771号