笔记
文章平均质量分 52
绯浅yousa
欢迎转载。文章偏基础较多---》因为写起来快,但是也会坚持出好文章
展开
-
如何查看 linux 内核源代码
Linux的内核源代码可以从很多途径得到。一般来讲,在安装的linux系统下,/usr/src/linux目录下的东西就是内核源代码。对于源代码的阅读,要想比较顺利,事先最好对源代码的知识背景有一定的了解。对于linux内核源代码来讲,我认为,基本要求是:1、操作系统的基本知识;2、对C语言比较熟悉,最好要有汇编语言的知识和GNU C对标准C的扩展的知识的了解。另外在阅读之前,还应该知道Linu...翻译 2019-06-30 23:47:00 · 2208 阅读 · 0 评论 -
clint是windows下的c/c++检查工具……
当然就算是这样,linux也可以使用windows挂在linux盘符的方式或者反过来linux mount windows文件的方式来在pclint检查代码规范原创 2017-04-16 02:34:19 · 687 阅读 · 0 评论 -
使用VS CODE+PlantUML高效画图
使用VS CODE+PlantUML高效画图 自从发现了plantuml写脚本画图的方式之后,爱上了画图~ 环境:MAC前言本文多数内容引用自官网文档和其他人的教程,并非本人原创,也谈不上翻译,只是把自己 理解的东西用中文写出来。什么是PLANTUMLPlantUML是一个快速创建UML图形的组件,官网上之所以称它是一个组件,我想主要是因为多数情况下我们都是在Eclipse、NetB原创 2017-04-13 23:05:14 · 62994 阅读 · 3 评论 -
微信红包的架构设计简介
微信红包的架构设计简介 背景:有某个朋友在朋友圈咨询微信红包的架构,于是乎有了下面的文字(有误请提出,谢谢) 概况:2014年微信红包使用数据库硬抗整个流量,2015年使用cache抗流量。微信的金额什么时候算?答:微信金额是拆的时候实时算出来,不是预先分配的,采用的是纯内存计算,不需要预算空间存储。。 采取实时计算金额的考虑:预算需要占存储,实时效率很高,预算才效率低。实时性:为什转载 2017-04-14 00:20:43 · 592 阅读 · 0 评论 -
孤儿进程和僵尸进程
孤儿进程和僵尸进程孤儿进程:进程A fork出子进程B,然后进程A退出,此时进程B依然在运行,那么这个进程因为没有了父进程(父进程退出,其父进程会自动变为init进程),故称为孤儿进程。孤儿进程将会被init进程(进程号位1)所收养,并且由init进程完成他们的状态收集工作。僵尸进程:进程A fork出子进程B,如果此时进程B退出,但是进程A并没有调用wait或waitpid函数获取子进程的状态信息原创 2017-04-11 21:35:31 · 476 阅读 · 0 评论 -
C/C++中的预定义宏简要介绍
C/C++中的预定义宏简要介绍背景在代码的日志中,记录函数的名称、对应日志行数以及文件、日期等信息,是比较普遍的。但如果仅仅为了获取函数名,就在函数体中嵌入字符串,这种方法单调乏味还易导致错误,也会占用不小的代码空间,也会让代码变得难以维护,所以就应运而生了预定义宏,来帮助我们完成对应工作。譬如FUNCTION常用预定义宏//代码文件名__FILE__ //当前代码在对应文件中行数__LINE原创 2017-03-26 01:19:11 · 413 阅读 · 0 评论 -
go提问模板
go提问模板咨询一个人问题如果描述不清晰会让被问的人觉得非常困惑、同时还浪费了很多时间在理解上。为了提升提问的效率,我这里转了一个go邮件列表提问的基本模板,也供自己方便查找基本模板Repro stepsWhat did you expect to see?What did you see instead?What version of Go are you using (go versio原创 2017-03-16 01:25:47 · 628 阅读 · 0 评论 -
最近笔试题整理(二)
最近笔试题整理(二)最近笔试题整理链接(1)最近笔试题整理链接算法题:二叉树遍历(人人网笔试)有如下图所示(左)的一棵二叉树, 请设计一种遍历方式,使得按照如下方式(右)输出各个元素:(从下到上, 从右到左输出, 要求每层之间换行, 同行元素之间用tab分割,写出完整代码)使用广度优先搜索bfs,遍历方式是从右子树开始遍历。遍历节点压栈,遍历之后出栈输出即为所需。边界考虑:如果只有一个节点?没问题原创 2017-03-16 00:45:02 · 457 阅读 · 0 评论 -
unix编程之信号机制笔记
unix编程之信号机制笔记 信号是进程间通信的一种方式,但是写代码中用到该机制并不多,调试程序时需要掌握些,故大概了解即可一、信号是什么?信号是进程通信方式的一种,应该算是比较古老的一种吧。比较直观的一些用处是,譬如键盘上某个按键被按下(很常用的就是停止进程Ctrl+c的SIGINT),或者譬如系统用来停止某进程(进程管理器发送信号强制关闭进程)、或者系统用信号来处理某些严重的错误(一个进程试原创 2017-03-30 22:58:54 · 556 阅读 · 0 评论 -
查看linux中常用端口
查看linux中常用端口可以通过查看/etc/services文件,每行给出了服务器名和熟知端口号因为端口众多,可以辅助使用grep命令示例查看HTTP使用的端口feiqianyousadeMacBook-Pro:forgeVisitMyblog yousa$ cat /etc/services | grep http# http://www.iana.org/assignments/port原创 2017-03-24 01:08:10 · 1195 阅读 · 0 评论 -
常用linux命令
常用linux命令1.罗列文件信息ls加强版显示文件信息,譬如大小、修改时间、读写权限等ls -lfeiqianyousadeMacBook-Pro:forgeVisitMyblog yousa$ ls -ltotal 16-rw-r--r-- 1 yousa staff 81 3 2 22:01 README.md-rw-r--r-- 1 yousa staff 249原创 2017-03-23 23:35:27 · 696 阅读 · 0 评论 -
无线网中一些约定俗成的时延估量
无线网中一些约定俗成的时延估量 作为一些性能、时延估量参考一、在传统LTE网络中的切换时延是50~150ms。所谓切换,就是指当移动台在通话过程中从一个基站覆盖区移动到另一个基站覆盖区,或者由于外界干扰而造成通话质量下降时,必须改变原有的话音信道而转接到一条新的空闲话音信道上去,以继续保持通话的过程。所以你在高铁上玩网络对战游戏,会发现网络时好时坏(当然影响的不止这一个因素)二、传输网络每10原创 2017-04-09 17:08:27 · 2022 阅读 · 0 评论 -
如何使用gdb快速attach到所需进程上
如何使用gdb快速attach到所需进程上大家都知道,gdb的调试功能非常强大,可以attach到打开调试开关编译出来的进程上调试进程,但是在这个流程中,你首先需要ps -ef | grep到你那个进程,然后找到进程号,然后再使用gdb attach命令attach进进程。首先,这个就比较麻烦,需要执行三条命令;其次,这个方法也肯定不是一个自动化attach进进程所应该允许的流程。这里就介绍一条命令原创 2017-04-09 16:50:56 · 5264 阅读 · 0 评论 -
make: *** /lib/modules/4.4.0-53-generic/build: 没有那个文件或目录。 停止。
make: * /lib/modules/4.4.0-53-generic/build: 没有那个文件或目录。 停止。 环境:ubuntu 16.04编译内核模块时,提示make: *** /lib/modules/4.4.0-53-generic/build错误遇到这个错误,主要是没安装内核安装包(类似于kernel-devel的名字)但是这种情况下一般有两种情况:有安装内核开发包,但是因原创 2017-04-09 16:32:00 · 30700 阅读 · 2 评论 -
unix多进程编程之exec函数笔记
unix多进程编程之exec函数笔记 运行环境:mac+xcodeexec函数介绍如果fork进程是unix程序员唯一可以创建进程的手段,那么linux性能会非常差,而且只能fork出同样的进程。exec函数就是解决这个问题,它把一个新的程序装载进进程的内存空间,来改变调用进程的执行代码,相当于产生一个新的进程,故通常exec使用方式是先fork一个子进程,然后exec执行进程。PS:exec原创 2017-03-30 01:53:21 · 832 阅读 · 0 评论 -
unix多进程编程之fork函数笔记
unix多进程编程之fork函数笔记 运行环境:mac+xcodefork进程介绍fork函数是复制本进程的一个拷贝,生成该进程的子进程。两个进程相同的地方:和该进程相关联的全部数据(包括变量,内存空间,缓冲区,文件描述符等等)程序的执行上下文(execution context),两个进程会从fork后的相同位置开始继续执行两个进程主要不同的地方:pid=fork();中的pid不同原创 2017-03-29 01:18:25 · 759 阅读 · 0 评论 -
获取glibc源码方式
获取glibc源码方式glibc下载源码地址http://ftp.gnu.org/gnu/glibc之后就可以按照[ ] glibc-2.25.tar.bz2 2017-02-05 11:16 20M [ ] glibc-2.25.tar.bz2.sig 2017-02-05 11:16 455 [ ] glibc-2.25.tar.gz 2017原创 2017-03-30 00:14:51 · 4236 阅读 · 1 评论 -
linux套接字编程笔记(一)--TCP与UDP
linux套接字编程笔记(一)–TCP与UDPTCP和UDP是传输层协议,作为传输层协议主要功能如下:提供建立、维护和拆除传输连接的功能。传输层在网络层的基础上为高层提供“面向连接”和“面向无接连”的两种服务。简单来说就是有连接or无连接处理传输差错:提供可靠的“面向连接”和不太可靠的“面向无连接”的数据传输服务、差错控制和流量控制。在提供“面向连接”服务时,通过这一层传输的数据将由目标设备确认原创 2017-04-16 12:14:29 · 670 阅读 · 0 评论 -
浅析TCP连接过程中server异常情况处理
#浅析TCP连接过程中server异常处理 基础环境:腾讯云ubuntu虚拟机 前置基础:对TCP连接有一个基本认识,能写进行简单socket编程先简单介绍一下TCP编程流程TCP简易编程流程1.TCP服务器端编程流程如下:创建套接字socket; 绑定套接字bind; 设置套接字为监听模式,进入被动接受连接状态listen; 接受请求,建立连接accpet; 读写数据re原创 2017-04-24 23:59:34 · 4994 阅读 · 0 评论 -
Linux环境下普通用户使用sudo不再需要敲密码的配置方法
sudo是什么sudo是Linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部root命令的一个工具。Linux系统下,为了安全,一般来说我们操作都是在普通用户下操作,但是有时候普通用户需要使用root权限,比如在安装软件的时候。现在我这里在执行某脚本的时候,既要求部分命令使用root权限执行,又需要在普通用户下执行,考虑到sudo的时候不知如何解决输密码的问题,故选择在Linux...原创 2019-06-12 17:20:21 · 3392 阅读 · 0 评论 -
Linux 操作系统错误(Linux System Errors)中英文对照
Linux System Errors 中英文对照http://www-numi.fnal.gov/offline_software/srt_public_context/WebDocs/Errors/unix_system_errors.htmlOS error code 0: Success操作系统错误代码0:成功OS error code 1: Operation not per...转载 2019-04-02 16:50:25 · 3377 阅读 · 0 评论 -
关于“expected ';', ',' or ')' before '&' token”错误
在GCC编译器上:出现该错误的主要原因是:在C语言里没有C++所谓的“按引用传递”,例如C++可以写这样一个函数:void func(int &a) { //函数功能 } 在C语言无法这样使用,所以需要改为地址引用:void func(int *a) { //函数功能 } 具体调用该函数时候就修改为:int num=10; //...... ...转载 2019-03-20 12:37:48 · 26994 阅读 · 0 评论 -
tgwadm接入coverity告警案例分享
文章目录静态代码分析Coverity静态检查告警案例静态检查问题总览案例1(内存泄露)案例2(内存泄露)案例3(变量未初始化)案例4(内存越界)案例5(无效的sizeof)Coverity使用最佳实践总结参考文章:本文适合不了解代码静态检查的初学者或者犹豫是否将项目接入静态检查的人阅读tgwadm是云网关组转发模块的agent组件,其主要功能有配置下发、与报文转发进程交互等功能。最新版本...原创 2018-12-29 10:09:50 · 2336 阅读 · 1 评论 -
Linux使用curl访问https站点时报错汇总
文章目录1.Peer’s Certificate issuer is not recognized2.SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed3.unknown message digest algorithm4. curl构造HTTPS请求的通用办法5.参考每一种客户端在处理https的连接时都会使用不...转载 2018-11-17 22:30:51 · 9423 阅读 · 0 评论 -
Java中字节数组byte[]变量间的比较
##方法一:使用==比较的是两个字节数组是否为同一个字节数组,此处不是比较两个字节数组的内容是否相同。##方法二:使用equals方法比较,该方法也是比较是两个字节数组是否为同一个字节数组,即equals也不是比较内容的。##方法三:如果是比较字节数组内容是否相等,使用Arrays.equals(a,b)方法比较,返回值为true或false。##最后一点:使用HashMap的键类型...转载 2018-09-28 00:34:11 · 10064 阅读 · 0 评论 -
windows进入当前目录的终端的方法
第一种方法,在此文件夹窗口内空白区域右键单击(需要同时按住Shift),从菜单中选择"在此处打开命令行窗口"的项;另一种方法,在此窗口地址栏里直接输入cmd,回车即可。...转载 2018-09-26 20:12:11 · 5269 阅读 · 0 评论 -
为linux配置dns或者域名指向的几种方式
1、修改网卡文件中dns的配置echo 'DNS1="114.114.114.114" ' >> /etc/sysconfig/network-scripts/ifcfg-eth02、修改主机host,将某一域名映射到指定ipecho "223.231.234.33 www.baidu.com" >> /etc/hosts3、修改域名服务器配置文件ech...转载 2018-09-08 16:59:40 · 13617 阅读 · 0 评论 -
CAP原则
CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。分布式系统的CAP理论,归纳如下:一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)可用性(A):在集群中一部分节点故障后,集群整体是否...转载 2018-08-20 20:26:18 · 164 阅读 · 0 评论 -
跨域资源共享CORS学习笔记
跨域资源共享CORS学习笔记1、同源政策含义1995年,同源政策由 Netscape 公司引入浏览器。目前,所有浏览器都实行这个政策。最初,它的含义是指,A网页设置的 Cookie,B网页不能打开,除非这两个网页”同源”。所谓”同源”指的是”三个相同”。协议相同域名相同端口相同举例来说,http://www.example.com/dir/page.html这个网址,协议是http://,域名是原创 2017-12-19 12:34:56 · 8138 阅读 · 0 评论 -
所有的转义字符和所对应的意义
所有的转义字符和所对应的意义: 转义字符 意义 ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) ,将当前位置移到前一列 008 \f 换页(FF),将当前位置移到下页开头 012 \n 换行(LF) ,将当前位置移到下一行开头 010 \r 回车(CR) ,将当前位置移到本行开头 013 \t转载 2018-01-01 12:09:37 · 838 阅读 · 0 评论 -
AWS相关信息跟踪
https://aws.amazon.com/cn/blogs/china/原创 2017-12-21 14:49:32 · 672 阅读 · 0 评论 -
你所不知道的腾讯和马化腾——一封腾讯内部的员工信
你所不知道的腾讯和马化腾——一封腾讯内部的员工信 这是一封在腾讯内部员工中传阅的邮件,出自一个在腾讯公司工作了6年的前高管之手,其中较为深刻的提及腾讯公司在创业初期的困难重重和一些成长内幕,马化腾的精神和大家创业的激情着实让我感到有些吃惊——付出一定有回报。以下是邮件的全部内容:各位兄弟:我在腾讯整整工作了6年。如果我能活到60岁的话,就有1/10的生命是投入到一个“初创公司到上市公司”的过程转载 2017-06-18 08:42:48 · 9837 阅读 · 1 评论 -
番茄工作法
使用番茄工作法,选择一个待完成的任务,将番茄时间设为25分钟,专注工作,中途不允许做任何与该任务无关的事,直到番茄时钟响起,然后在纸上画一个X短暂休息一下(5分钟就行),每4个番茄时段多休息一会儿。原创 2017-06-17 15:02:50 · 334 阅读 · 0 评论 -
最近玩喂喂我的小仓鼠吧,玩上瘾了……
最近玩喂喂我的小仓鼠吧,玩上瘾了……是该大神制作的,拷贝一下里面的http内容就可以了……但是csdn不清楚为啥不行,好烦啊。http://abowman.com/google-modules/hamster/#gadgetSWF原创 2017-04-25 21:10:39 · 2550 阅读 · 0 评论 -
技术人员的发展之路
技术人员的发展之路 转自陈皓大神,勉励自己2012年的时候写过一篇叫《程序算法与人生选择》的文章,我用算法来类比如何做选择,说白了就是怎么去计算,但是并没有讲程序员可以发展的方向 有哪些。 所以,就算是有这些所谓的方法论,我们可能对自己的发展还是会很纠结和无所事从,尤其是人到了30岁,这种彷徨和迷惑越来越重。虽然我之前也写过一篇《编程年龄和编程技能》的文章,但是还是有很多做技术的人对于自己能否转载 2017-04-25 00:05:54 · 612 阅读 · 0 评论 -
写代码时容易忽视的性能问题
写代码时容易忽视的性能问题主线程等不要有耗时操作主线程、其他模块回调等函数不要有耗时操作。主线程如果有耗时操作会容易导致阻塞主线程,轻则用户体验下降(但是用户体验其实是最重要的),重则程序崩溃(各种消息队列满);其他模块回调则不建议有耗时操作,除非接口/双方模块有明确协商,否则这种耗时回调通常是各种疑难bug的温床,如果要做耗时操作,建议采用发一条消息给自己,放到消息队列处理任务中完成相应耗时操作,原创 2017-03-22 01:36:45 · 408 阅读 · 0 评论 -
操作内存、磁盘访问所需时间笔记
操作内存、磁盘访问所需时间笔记一次内存访问、SSD 硬盘访问和SATA 硬盘随机访问的时间分别约是几十纳秒,几十微秒,几十毫秒。2.访问内存一次是100个时钟周期以上, 访问一次普通的硬盘在几十万盗数百万个时钟周期, ssd速度是普通硬盘的十倍了, 访问一次L1 cache大概是十个时钟周期之内, 访问一次L2 cache在20个时钟周期之内, 访问一次L3 cache在40个时钟周期原创 2017-03-22 01:28:39 · 5152 阅读 · 0 评论 -
ssh登录远程机
ssh登录远程机ssh基本命令usage: ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i i原创 2017-04-06 22:39:09 · 3643 阅读 · 0 评论 -
cjson使用教程
cjson使用教程本文简单介绍cJSON后,说明读取json文件、解析json文件、生成json文件代码。json是什么?json 指的是 JavaScript 对象表示法(JavaScript Object Notation)json 是轻量级的文本数据交换格式json 独立于语言 json 具有自我描述性,更易理解json 使用 JavaScript 语法来描述数据对象,但是 json原创 2016-03-23 09:56:44 · 2968 阅读 · 0 评论 -
json简易语法
json简易语法 json我觉得很多人用,所以就仅仅介绍一下简单的语法,以供理解json是什么?json 指的是 JavaScript 对象表示法(JavaScript Object Notation)json 是轻量级的文本数据交换格式json 独立于语言 json 具有自我描述性,更易理解json 使用 JavaScript 语法来描述数据对象,但是 json 仍然独立于语言和平原创 2016-03-22 20:12:53 · 851 阅读 · 0 评论