junlon2006的博客

淡泊明志,宁静致远
私信 关注
junlon2006
码龄10年

Coding for fun.

  • 218,597
    被访问量
  • 125
    原创文章
  • 29,968
    作者排名
  • 22
    粉丝数量
  • 于 2010-09-23 加入CSDN
获得成就
  • 获得48次点赞
  • 内容获得5次评论
  • 获得128次收藏
荣誉勋章
TA的专栏
  • Redis
    5篇
  • 算法与数据结构
    5篇
  • c/c++
    51篇
  • 随笔
    15篇
  • arm嵌入式
    5篇
  • git
    6篇
  • leetcode
    19篇
  • linux/kernel
    43篇
  • TCP/IP
    21篇
  • shell
    5篇
  • unix编程
    3篇
  • 代码仓库
    5篇
  • vim
    2篇
  • IDE
    2篇
  • gdb
    2篇
  • 调试及性能分析
    4篇
  • golang
    6篇
  • math
    1篇
  • Java
    38篇
  • 数据库
    1篇
  • docker
    2篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

MacOS时光机升级后启动:不可恢复的错误,prelogin

原因TeamView 启动项写入了MacOS boot中,需要先register解决方案:1、command + R进入恢复模式2、进入terminal3、输入rm /Volumes/Macintosh\ HD/var/db/auth.db4、reboot
原创
61阅读
0评论
0点赞
发布博客于 2 月前

关于选择

选择,串联人生的最重要连接元素。有句话说:选择大于努力。深以为然,选择的目的是带来“功劳”,即在方向上、战略上正确,努力是“苦劳”,即勤勉。方向错了,越努力越偏离轨道。那么怎么才能避免选择错误,或者是从概率上尽可能提升选择的正确率,靠的是深层次的认识水平,是看透现象,看到本质的能力,大的道理往往非常简洁,类似常识。如何提前看到机会,需要在特定领域长期深耕,追求极限,追求极致是最简单的突破境界,打破万物理解边界的最简方式,跳不出则看不到。...
原创
31阅读
0评论
0点赞
发布博客于 3 月前

唯结果论

商业上抑或工作中,充斥着“结果论”,比方说员工常抱怨老板只看结果不看过程。细细想来,唯结果论主要需要关注的点是长期利益还是短期利益,比方说,从商业角度,短期利益就是用最快的速度,最少的投入带来现金流,赚快钱,大部分老板的思维只能到这一步,所以我们可以非常普遍的看到,工作中实际的计划是在不停的试错,不停的改变,以此来尝试获得“赚快钱”的目的。但从长远利益来看,一些是短期明确没有收益的规划,且会消费大量的资源,这些到底需不需要坚持,需不需要深耕,就体现出最高战略规划。能抓住长远利于的组织,从战略上是因为相信
原创
294阅读
0评论
0点赞
发布博客于 4 月前

Nand vs Norflash (XIP)

https://www.embedded.com/flash-101-nand-flash-vs-nor-flash/
转载
79阅读
0评论
1点赞
发布博客于 9 月前

Spring boot + docker运行时定制环境变量

1、目的在docker run时,导入一个运行时参数到Spring boot application中。2、方式采用环境变量,以变量HELLO_WORLD为类3、步骤step 1. Dockerfile中添加ENVHELLO_WORLD="this is default hello world"step 2. Spring Boot中获取环境变量:@Config...
原创
790阅读
0评论
0点赞
发布博客于 1 年前

redis cluster

Redis cluster概念1、Redis Cluster特点是:分布式、去中心化、高可用。2、hash slots(哈希槽):Redis集群,共维护了16384(0x4000)个hash slot,通过对key的CRC 16检验值对%16384获取key对应的hash slot。3、集群中的每个Redis node负责处理16384个hash slot中的一部分。4、集群中的每个节点都...
原创
58阅读
0评论
0点赞
发布博客于 2 年前

大道至简,少即是多

最近脑海里经常出现这两个词,几乎每时每刻都在我脑袋里转悠。在工作的第六点五个年头,敲代码的第十个年头,我似乎感悟到了什么。 当我读起3年前自己写的东西,发现自身深层次的思维从来未曾改变过,我还是以前那个少年,仍然想着去方便这个世界,用自己小小的思维,努力去简单这个世界,哪怕只是简单那么一点点。 大道至简,少即是多,我对这个世界的理解,仍然是很单纯,很简单,我想从自己编码中就...
原创
178阅读
0评论
0点赞
发布博客于 2 年前

Java String equals

以下源码摘至JDK1.8 public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString =...
原创
61阅读
0评论
0点赞
发布博客于 2 年前

Java switch String

switch String支持底层实现switch (type) { case "hello": System.out.println("hello"); break; case "world": System.out.println("world"); break;}switch (type) { case "hello".hashcode: if ("hello".eq...
原创
42阅读
0评论
0点赞
发布博客于 2 年前

Java String拼接

常用的字符串拼接方式有五种,分别是使用+、使用concat、使用StringBuilder、使用StringBuffer以及使用StringUtils.join。由于字符串拼接过程中会创建新的对象,所以如果要在一个循环体中进行字符串拼接,就要考虑内存问题和效率问题。因此,经过对比,我们发现,直接使用StringBuilder的方式是效率最高的。因为StringBuilder天生就是设计来定义可...
原创
77阅读
0评论
0点赞
发布博客于 2 年前

Java 装箱与拆箱

Java中的八种基本数据类型和对应的包装类基本数据类型包装类byteByteshortShortlongLongintIntegerboolenBoolencharCharactorfloatFloatdoubleDouble public static void main(String[]args){ ...
原创
31阅读
0评论
0点赞
发布博客于 2 年前

Java Integer cache

在Integer自动装箱过程中,为了节省内存,JDK做了cache,对-128 ~ 128做cache /** * Returns an {@code Integer} instance representing the specified * {@code int} value. If a new {@code Integer} instance is not ...
原创
45阅读
0评论
0点赞
发布博客于 2 年前

Java String hashcode

/** * Returns a hash code for this string. The hash code for a * {@code String} object is computed as * <blockquote><pre> * s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]...
原创
43阅读
0评论
0点赞
发布博客于 2 年前

Java Collection HashSet

1、HashSet底层实现为HashMap,不能插入重复的元素。2、HashSet将元素作为HashMap的Key,HashMap的Value是一个默认的静态对象。JDK1.8部分源码如下:public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable,...
原创
40阅读
0评论
0点赞
发布博客于 2 年前

Java Collection HashMap

HashMap线程不安全HashMap本质上是连续的数组 + 链表结构,在JDK1.8中,当table中的链表长度大于8时,会将链表转换为红黑树,以此来提升搜索的性能。如下图下面为摘录于JDK1.8中的部分源码1、初始table数组长度16,当存储的元素个数超过16 * 0.75时触发扩容,扩容逻辑为double,即容量扩充1倍。扩容时开销比较大,因为需要rehash,即将已存在的元素...
原创
41阅读
0评论
0点赞
发布博客于 2 年前

Java RandomAccess interface

/* * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package java.util;/** * Marker interface...
原创
34阅读
0评论
0点赞
发布博客于 2 年前

Java基础知识总结

1、JAVA本质上只有值传递(主要分为两种,基础类型,引用类型)2、String、StringBuffer、StringBuilder的区别:2.1、String不可变public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** T...
原创
52阅读
0评论
0点赞
发布博客于 2 年前

Java Collection PriorityQueue

PriorityQueue即队列,先进先出/** * Increases the capacity of the array. * * @param minCapacity the desired minimum capacity */ private void grow(int minCapacity) { int oldCapa...
原创
53阅读
0评论
0点赞
发布博客于 2 年前

Java Collection modCount

在很多的结构中(ArrayList、LinkedList、PriorityQueue等),这些结构的特点就是:线程不安全,它们都有modCount字段,从字面上看该modCount保持了结构被修改的次数,这个次数有什么用呢?下面以JDK ArrayList为例,看看modCount有什么作用/** * An optimized version of AbstractList.Itr...
原创
92阅读
0评论
0点赞
发布博客于 2 年前

Java Collection Stack

Stack即栈,后进先出以下为从JDK摘录的部分源码(接口线程安全)/** * Pushes an item onto the top of this stack. This has exactly * the same effect as: * <blockquote><pre> * addElement(item)</p...
原创
40阅读
0评论
0点赞
发布博客于 2 年前

Java Collection LinkedList

LinkedList本质上是一个双项链表,插入、删除复杂度O(1),查找复杂度O(N)以下为从JDK摘录的部分源码/* Node节点使用泛型,数据结构如下 */private static class Node<E> { E item; Node<E> next; Node<E> prev; ...
原创
35阅读
0评论
0点赞
发布博客于 2 年前

Java Collection ArrayList

/** * Inserts the specified element at the specified position in this * list. Shifts the element currently at that position (if any) and * any subsequent elements to the right (adds one...
原创
42阅读
0评论
0点赞
发布博客于 2 年前

Redis5.0.5源码解析 -- daemon

Redis daemon:即在后天运行,源码如下int background = server.daemonize && !server.supervised;if (background) daemonize(); /* 如果配置后台运行,则启用fork,默认前天跑 */ void daemonize(void) { int fd; if (for...
原创
150阅读
0评论
0点赞
发布博客于 2 年前

Redis5.0.5源码解析 -- tcp_max_syn_backlog

1、client发送SYN到server,将状态修改为SYN_SEND,如果server收到请求,则将状态修改为SYN_RCVD,并把该请求放到syns queue队列中。2、server回复SYN+ACK给client,如果client收到请求,则将状态修改为ESTABLISHED,并发送ACK给server。3、server收到ACK,将状态修改为ESTABLISHED,并把该请求从sy...
原创
111阅读
0评论
0点赞
发布博客于 2 年前

Redis5.0.5源码解析 -- 多路复用模型

redis源码地址简介:I/O多路复用模型,在5.0.5的源码中,支持了4种,分别是:epoll、evport、kqueue、select。源码地址epoll:src/ae_epoll.cevport:src/ae_evport.ckqueue:src/ae_kqueue.cselect:ae_select.cRedis对以上各类I/O接口都进行了封装,以满足src/ae.c的统一...
原创
107阅读
0评论
0点赞
发布博客于 2 年前

Redis5.0.5源码解析 -- sds

redis源码地址:https://github.com/antirez/redis/releases/tag/5.0.5sds源码所在位置:src/sds.h src/sds.c简介:sds (Simple Dynamic String),即动态字符串管理库在sds.h中,有如下定义typedef char *sds;/* Note: sdshdr5 is never used, w...
原创
404阅读
0评论
0点赞
发布博客于 2 年前

int epoll_create(int size) 入参到底需要设置成多少

结论:1、对于高版本的内核只要大于0,效果都一样。2、正常写个1024吧。
原创
828阅读
0评论
0点赞
发布博客于 2 年前

cache update

看到好些人在写更新缓存数据代码时,先删除缓存,然后再更新数据库,而后续的操作会把数据再装载的缓存中。然而,这个是逻辑是错误的。试想,两个并发操作,一个是更新操作,另一个是查询操作,更新操作删除缓存后,查询操作没有命中缓存,先把老数据读出来后放到缓存中,然后更新操作更新了数据库。于是,在缓存中的数据还是老的数据,导致缓存中的数据是脏的,而且还一直这样脏下去了。我不知道为什么这么多人用的都是这个逻...
转载
261阅读
0评论
0点赞
发布博客于 2 年前

docker 中文乱码

docker run -d -p 9998:9998 --name=hotel-service -e LC_ALL=C.UTF-8 hotel-service:1.1
原创
259阅读
0评论
0点赞
发布博客于 2 年前

docker mysql

本文简述如何使用Docker部署mysql,同时持久化数据.我们会用到tutum-docker-mysql这个项目来搭建一个mysql,省去重头写Dockerfile的时间.首先我们将tutum-docker-mysql跑起来.docker run -d -p 3306:3306 --name mysql tutum/mysql如果你本地没有tutum/mysql的image,do...
转载
70阅读
0评论
0点赞
发布博客于 2 年前

spring boot 解决中文乱码问题

package com.unisound.iot.unione.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.http.converter.Htt...
原创
555阅读
0评论
0点赞
发布博客于 2 年前

数据库索引

https://blog.csdn.net/kennyrose/article/details/7532032强烈建议参阅链接:http://www.linezing.com/blog/?p=798#nav-1说白了,索引问题就是一个查找问题。。。数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。在数据之外...
转载
75阅读
0评论
1点赞
发布博客于 2 年前

GOPATH有多工作区的问题

https://cloud.tencent.com/developer/article/1339789如果GOPATH设置了多个工作区,那么查找依赖包时是以怎样的顺序进行的?例如 a 依赖 b ,b依赖c那么 会先查找c包,那在工作区是如何查找这个依赖包c的呢?首先在查找依赖包的时候,总是会先查找 GOROOT目录,也就是go语言的安装目录,如果没有找到依赖的包,才到工作区去找...
转载
313阅读
0评论
0点赞
发布博客于 2 年前

java中Class.getResource

https://www.cnblogs.com/keyi/p/6282838.html  用JAVA获取文件,听似简单,但对于很多像我这样的新人来说,还是掌握颇浅,用起来感觉颇深,大常最经常用的,就是用JAVA的File类,如要取得c:/test.txt文件,就会这样用File file = new File("c:/test.txt");这样用有什么问题,相信大家都知道,就是路径硬编码,对于...
转载
49阅读
0评论
0点赞
发布博客于 2 年前

Spring Boot Actuator

https://www.jianshu.com/p/af9738634a21Spring Boot 的 Actuator 提供了很多生产级的特性,比如监控和度量Spring Boot 应用程序。Actuator 的这些特性可以通过众多 REST 接口、远程 shell 和 JMX 获得。一、Actuator 的 REST 接口Spring Boot Actuator 的关键特性是在应用...
转载
150阅读
0评论
0点赞
发布博客于 2 年前

MEMORY OVERCOMMIT

http://linuxperf.com/?p=102Overcommit的意思是操作系统承诺给进程的内存大小超过了实际可用的内存。一个保守的操作系统不会允许memory overcommit,有多少就分配多少,再申请就没有了,这其实有些浪费内存,因为进程实际使用到的内存往往比申请的内存要少,比如某个进程malloc()了200MB内存,但实际上只用到了100MB,按照UNIX/Linux的算...
转载
260阅读
0评论
0点赞
发布博客于 2 年前

@ControllerAdvice

https://www.cnblogs.com/magicalSam/p/7198420.html在spring 3.2中,新增了@ControllerAdvice 注解,可以用于定义@ExceptionHandler、@InitBinder、@ModelAttribute,并应用到所有@RequestMapping中。参考:@ControllerAdvice 文档一、介绍创建 MyC...
转载
1659阅读
0评论
0点赞
发布博客于 2 年前

@PostConstruct

https://www.jianshu.com/p/98cf7d8b9ec31、从Java EE5规范开始,Servlet中增加了两个影响Servlet生命周期的注解,@PostConstruct和@PreDestroy,这两个注解被用来修饰一个非静态的void()方法。写法有如下两种方式:@PostConstructpublic void someMethod(){}或者pu...
转载
1662阅读
0评论
0点赞
发布博客于 2 年前

@Qualifier

https://my.oschina.net/leisu/blog/916051背景我们知道,自动装配注入时,可以使用@Resource或者@Autowired注入bean。但有时候仅仅一个bean_id还无法清晰明确出要注入的bean,因此可以引入@Qualifier注解。在class类和bean注入时,都加上@Qualifier(),来达到注入某个...
转载
1926阅读
0评论
0点赞
发布博客于 2 年前

Java equals() & hashCode()

https://www.cnblogs.com/Qian123/p/5703507.html阅读目录equals()方法详解 hashcode() 方法详解 Hashset、Hashmap、Hashtable与hashcode()和equals()的密切关系java.lang.Object类中有两个非常重要的方法: 1 2 publicboo...
转载
40阅读
0评论
0点赞
发布博客于 2 年前

@Controller @RestController

https://blog.csdn.net/gg12365gg/article/details/51345601知识点:@RestController注解相当于@ResponseBody + @Controller合在一起的作用。1) 如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 ...
转载
41阅读
0评论
0点赞
发布博客于 2 年前

Feign

https://cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-feign.html7.Declarative REST Client: FeignFeignis a declarative web service client. It makes writing web service clients eas...
转载
761阅读
0评论
0点赞
发布博客于 2 年前

@Value

https://www.baeldung.com/spring-value-annotationI just announced the newLearn Springcourse, focused on the fundamentals of Spring 5 and Spring Boot 2:>> CHECK OUT THE COURSEIf you have a...
转载
235阅读
0评论
0点赞
发布博客于 2 年前

@Aspect

https://blog.csdn.net/qgfjeahn/article/details/60144241Spring只支持XML方式而没有实现注解的方式(也叫AspectJ方式)的AOP,所以要使用@Aspect注解,只能引入AspectJ相关的 jar 包 aopalliance-1.0.jar 和 aspectjweaver.jar,这个坑把我给坑惨了。1使用步骤如下:1、引入...
转载
2262阅读
0评论
1点赞
发布博客于 2 年前

AOP

https://www.cnblogs.com/flowwind/p/4782606.htmlSpring AOPJava web 环境搭建Java web 项目搭建Java Spring IOC用法spring提供了两个核心功能,一个是IoC(控制反转),另外一个便是Aop(面向切面编程),IoC有助于应用对象之间的解耦,AOP则可以实现横切关注点(如日志、安全、缓存和事务管理)与他们...
转载
1761阅读
0评论
0点赞
发布博客于 2 年前

Spring Cloud入门教程(一):服务治理(Eureka)

https://www.jianshu.com/p/d32ae141f680Spring Cloud是一系列框架的集合,其基于Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,构建了服务治理(发现注册)、配置中心、消息总线、负载均衡、断路器、数据监控、分布式会话和集群状态管理等功能,为我们提供一整套企业级分布式云应用的完美解决方案。Spring Cloud包含了多个子...
转载
67阅读
0评论
0点赞
发布博客于 2 年前

@Builder

https://www.projectlombok.org/features/Builder@Builder... and Bob's your uncle: No-hassle fancy-pants APIs for object creation!@Builderwas introduced as experimental feature in lombok v0.12.0....
转载
1389阅读
0评论
0点赞
发布博客于 2 年前

Lombok

https://www.cnblogs.com/qnight/p/8997493.html前言Lombok是一种Java™实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO)。它通过注解实现这一目的。正文添加依赖在 pom.xml 文件中添加相关依赖:<lombok.version>1.16.20</...
转载
284阅读
0评论
0点赞
发布博客于 2 年前

mtrace

#include <stdlib.h>#include <unistd.h>#include <mcheck.h>int main() { int i = 10; char *p = NULL; mtrace(); while (i--) { p = malloc(32); sleep(1); } free(p)...
原创
479阅读
0评论
0点赞
发布博客于 2 年前

Linux proc status man

/proc/[pid]/status Provides much of the information in /proc/[pid]/stat and /proc/[pid]/statm in a format that's easier for humans to parse. Here's an example: $ cat ...
原创
141阅读
0评论
0点赞
发布博客于 2 年前

Shared Libraries

http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html3. Shared LibrariesShared libraries are libraries that are loaded by programs when they start. When a shared library is installed p...
原创
47阅读
0评论
0点赞
发布博客于 2 年前

转(JAVA的JNI调用)

转载于:https://www.cnblogs.com/GDUT/p/3806771.html由于JNI调用C和调用C++差不多,而且C++中可以混合写C代码,所以这里主要是写关于JNI调用C++的部分。 一般步骤: 先是写普通的Java类,其中包括本地方法调用。 然后编译这个Java类,调用javah命令,生成.h头文件 接着,就是实现头文件中的函数;实现过程中有点比较麻...
转载
1939阅读
0评论
1点赞
发布博客于 2 年前

ffmpeg av_seek_frame

转载于:https://blog.csdn.net/xujaiwei/article/details/77651562av_seek_frame使用时需要使用四个参数av_seek_frame(fmt_ctx, -1 , 20 * AV_TIME_BASE, AVSEEK_FLAG_ANY);参数一: fmt_ctx为容器内容;参数二: 流索引, stream_index参数三...
转载
273阅读
0评论
0点赞
发布博客于 2 年前

MySQL macOS安装

转载于:http://www.cnblogs.com/macro-cheng/archive/2011/10/25/mysql-001.html一 下载MySQL 访问MySQL的官网http://www.mysql.com/downloads/然后在页面中会看到“MySQL Community Server”下方有一个“download”点击。进入MySQL的下载界面(h...
转载
763阅读
0评论
0点赞
发布博客于 2 年前

使用注解来构造IoC容器

转载于:http://www.cnblogs.com/xdp-gacl/p/3495887.html用注解来向Spring容器注册Bean。需要在applicationContext.xml中注册&lt;context:component-scan base-package=”pagkage1[,pagkage2,…,pagkageN]”/&gt;。如:在base-package指明一个包...
转载
65阅读
0评论
0点赞
发布博客于 2 年前

spring的@Transactional注解详细用法

转载于:https://www.cnblogs.com/yepei/p/4716112.html概述事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性。Spring Framework对事务管理提供了一致的抽象,其特点如下:为不同的事务API提供一致的编程模型,比如JTA(Java Transaction API), JDBC, Hibernate, J...
转载
58阅读
0评论
0点赞
发布博客于 2 年前

Spring注解@Resource和@Autowired区别对比

转载于:https://www.cnblogs.com/think-in-java/p/5474740.html@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。1、共同点两者都可以写在字段和setter方法上。两者如...
转载
185阅读
0评论
0点赞
发布博客于 2 年前

转java中的注解大全@controller、@service、@repository等

转载于:http://www.cnblogs.com/hnrainll/archive/2011/10/11/2207773.html参考一篇文章,其中讲了@controller、@service、@repository注解,看后很有启发,自己复制下总结下,添加点东西写下这篇博客controller层使用@controller注解@Controller 用于标记在一个类上,使用它标记的类就...
转载
116阅读
0评论
1点赞
发布博客于 2 年前

TCP_NODELAY 和 TCP_NOPUSH的解释

转载:https://www.cnblogs.com/wajika/p/6573014.html一、问题的来源今天看到 huoding 大哥分享的 lamp 面试题,其中一点提到了:Nginx 有两个配置项: TCP_NODELAY 和 TCP_NOPUSH ,请说明它们的用途及注意事项。 初看到这个题目时,感觉有点印象:1、在nginx.conf 中确实有这两项,记得就是...
转载
474阅读
0评论
2点赞
发布博客于 2 年前

Linux正在运行的程序可以直接覆盖吗?

转载于:https://blog.oasisfeng.com/2008/04/14/replace-running-program-in-linux/Linux下可以替换运行中的程序么?今天被朋友问及“Linux下可以替换运行中的程序么?”,以前依稀记得Linux下是可以的(而Windows就不让),于是随口答道“OK”。结果朋友发来一个执行结果:(test正在运行中)# cp te...
转载
1978阅读
0评论
4点赞
发布博客于 2 年前

pkg-config

转载于:https://blog.csdn.net/newchenxf/article/details/517502391 什么是pkg-configpkg-config是一个linux下的命令,用于获得某一个库/模块的所有编译相关的信息。例子:pkg-config opencv –libs –cflags结果:-I/usr/include/opencv/usr/l...
转载
527阅读
0评论
0点赞
发布博客于 3 年前

arm-linux-gnueabi和arm-linux-gnueabihf

https://www.cnblogs.com/AP0904225/p/6075868.html一、 什么是ABI和EABI1 、ABIABI(二进制应用程序接口-Application Binary Interface (ABI) for the ARM Architecture)在计算机中,应用二进制接口描述了应用程序(或者其他类型)和操作系统之间或其他应用程序的低级接口.    ...
转载
1223阅读
0评论
0点赞
发布博客于 3 年前

CMake交叉编译配置

转载于:https://www.cnblogs.com/findumars/p/6399797.html 很多时候,我们在开发的时候是面对嵌入式平台,因此由于资源的限制需要用到相关的交叉编译。即在你host宿主机上要生成target目标机的程序。里面牵扯到相关头文件的切换和编译器的选择以及环境变量的改变等,我今天仅仅简单介绍下相关CMake在面对交叉编译的时候,需要做的一些准备工作。   ...
转载
72阅读
0评论
0点赞
发布博客于 3 年前

glib configure: error: cannot run test program while cross compiling

交叉编译场景分析(arm-linux)(八)--编译glib 出处:http://blog.csdn.net/absurd/archive/2006/04/01/646993.aspx 1.         基本信息:软件名称 glib 功能简述 Glib是GNOME的一个基础库,提供基本的容器、算法、对象系统、OSAPI的适配器等。 下载地址 http://www....
转载
3011阅读
1评论
1点赞
发布博客于 3 年前

Linux中交叉编译libxml2

https://blog.csdn.net/q1302182594/article/details/44975527
转载
468阅读
0评论
0点赞
发布博客于 3 年前

cmake

http://www.hahack.com/codes/cmake/ 
转载
47阅读
0评论
0点赞
发布博客于 3 年前

GCC编译过程与动态链接库和静态链接库

1. 库的介绍库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。库有两种:静态库(.a、.lib)和动态库(.so、.dll)。 windows上对应的是.lib .dll linux上对应的是.a .so在这里先介绍下Linu...
转载
351阅读
0评论
0点赞
发布博客于 3 年前

代码重构意义和方法

转载于:https://blog.csdn.net/justinjing0612/article/details/41311577摘要:很多人认为重构浪费时间,影响项目进度,其实重构不仅可以让我们的代码更加强壮而且还可以加快我们的项目进度。就和我们盖一个高楼大厦一样,我们的架构和地基越好,我们的楼房会越坚固和牢靠。一、什么是重构          重构就是通过调整程序代码,但并不改变程序的功能特征...
转载
2991阅读
0评论
0点赞
发布博客于 3 年前

中断产生EINTR错误

https://blog.csdn.net/u011068702/article/details/620697141、介绍慢系统调用该术语适用于那些可能永远阻塞的系统调用。永远阻塞的系统调用是指调用永远无法返回,多数网络支持函数都属于这一类。如:若没有客户连接到服务器上,那么服务器的accept调用就会一直阻塞。慢系统调用可以被永久阻塞,包括以下几个类别:(1)读写‘慢’设备(包括pipe,终端设...
转载
10442阅读
0评论
0点赞
发布博客于 3 年前

Linux Makefile自动生成--config.h

转载于:https://blog.csdn.net/spch2008/article/details/12510805Linux Makefile自动生成--总体流程Linux Makefile自动生成--实例Linux Makefile自动生成--config.hconfig.h主要用于代码移植,产生可移植代码。有些函数只适用于特定的系统,并不通用,如gettimeofday。只能在特定的系统上...
转载
708阅读
0评论
0点赞
发布博客于 3 年前

滑稽的char打印

切记用unsigned char c = 254;printf("%02x
", c);
原创
778阅读
0评论
0点赞
发布博客于 3 年前

0x5f3759df的数学原理 ----一种快速开方根求倒原理

转载于:https://blog.csdn.net/lz0499/article/details/782385970x5f3759df的数学原理 ----一种快速开方根求倒原理转载于:1.0x5f3759df的数学原理2.数学之美:平方根倒数速算法中的神奇数字 0x5f3759df3.0x5f3759dfQuake-III Arena (雷神之锤3)是90年代的经典游戏之一。 该系列的游戏不但画面...
转载
5424阅读
0评论
4点赞
发布博客于 3 年前

C语言运算中的数据类型自动转换原则

转载于:http://blog.csdn.net/cherish_2012/article/details/212430471、隐式转换    C在以下四种情况下会进行隐式转换:       1、算术运算式中,低类型能够转换为高类型。       2、赋值表达式中,右边表达式的值自动隐式转换为左边变量的类型,并赋值给他。       3、函数调用中参数传递时,系统隐式地将实参转换为形参的类型后,赋...
转载
154阅读
0评论
0点赞
发布博客于 3 年前

TCP socket SIGPIPE捕获

在socket通信中,偶发的PEER关闭链接(断网、异常FIN等)系统会抛出SIGPIPE信号,默认处理方式为进程退出,需要做屏蔽处理,否则系统会自动退出。解决SIGPIPE有好几种方法:1、设置socket属性:setsocketopt(sock_fd, SOL_SOCKET, SO_NOSIGPIPE, &amp;(int){1}, sizeof(int));2、丢弃SIGPIPE信号:sig...
原创
609阅读
0评论
0点赞
发布博客于 3 年前

errno

转载于:https://www.cnblogs.com/fjutacm/p/5969c7593fdb6516c11a55b0e6813938.html会用errno,事半功倍参考一 参考二 参考三 参考四一、 errno二、 把errno的数字转换成相应的文字说明1、 使用strerror函数2、 使用perror函数三、
转载
188阅读
0评论
0点赞
发布博客于 3 年前

Linux termios 串口编程之 VTIME与VMIN

转载于:http://blog.csdn.net/JAZZSOLDIER/article/details/55508227在Linux TTY编程时会涉及到 termios 结构,其中c_cc数组里面,有 VTIME 和 VMIN 下标。关于他们的使用经常令人迷惑,查阅了不少博客,上面的讲解也有不少误区。在这里重新对这二者关系进行介绍。结合实验会令人记忆更深刻。VTIM
转载
594阅读
0评论
0点赞
发布博客于 3 年前

Linux 串口编程

转载于:http://www.cnblogs.com/lovemo1314/archive/2010/10/29/1864327.htmlLinux 串口编程       在linux下编写终端程序时,有规范模式 ,非规范模式(原始模式特殊的非规范模式)之分。不用于终端,而是在串口这种使用情况下,一般设置为原始模式(非规范的一种特殊情况)。但用read()函数,希望从串口接收指
转载
122阅读
0评论
0点赞
发布博客于 3 年前

win7 DOS utf-8汉字乱码的问题

转载于:http://blog.csdn.net/u010454729/article/details/38320765win7 DOS utf-8汉字乱码的问题 以前用命令行的时候也经常遇到这个问题,貌似从没想过纠正一下,看到第九街上的这篇文章特别收藏一下。 在dos下执行一个PHP文件的时候,由于输出文件文字是UTF8编码,所以显示出现了乱码
转载
410阅读
0评论
0点赞
发布博客于 4 年前

etcd process

转载于:http://cizixs.com/2016/08/02/intro-to-etcd1. etcd 简介coreos 开发的分布式服务系统,内部采用 raft 协议作为一致性算法。作为服务发现系统,有以下的特点:简单:安装配置简单,而且提供了 HTTP API 进行交互,使用也很简单安全:支持 SSL 证书验证快速:根据官方提供的 benchma
转载
201阅读
0评论
0点赞
发布博客于 4 年前

CoreOS 实战:剖析 etcd

转载于:http://www.infoq.com/cn/articles/coreos-analyse-etcd/CoreOS是一个基于Docker的轻量级容器化Linux发行版,专为大型数据中心而设计,旨在通过轻量的系统架构和灵活的应用程序部署能力简化数据中心的维护成本和复杂度。CoreOS作为Docker生态圈中的重要一员,日益得到各大云服务商的重视,目前已经完成了A轮融资
转载
434阅读
0评论
0点赞
发布博客于 4 年前

etcd

转载于:http://www.infoq.com/cn/articles/etcd-interpretation-application-scenario-implement-principle随着CoreOS和Kubernetes等项目在开源社区日益火热,它们项目中都用到的etcd组件作为一个高可用强一致性的服务发现存储仓库,渐渐为开发人员所关注。在云计算时代,如
转载
339阅读
0评论
0点赞
发布博客于 4 年前

golang make & new

转载于:https://studygolang.com/articles/1642make用于内建类型(map、slice 和channel)的内存分配。new用于各种类型的内存分配。内建函数new本质上说跟其它语言中的同名函数功能一样:new(T)分配了零值填充的T类型的内存空间,并且返回其地址,即一个*T类型的值。用Go的术语说,它返回了一个指针,指向新分配的类型T的零值。
转载
229阅读
0评论
0点赞
发布博客于 4 年前

http

转载于:http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html浅谈HTTP中Get与Post的区别  Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GE
转载
95阅读
0评论
0点赞
发布博客于 4 年前

tcp rto

计算RTT以及RTO的代码比较简单,我们先来看原理,首先相关的rfc有两篇分别是rfc793以及rfc6298,而相关的paper有一篇,那就是Van Jacobson和Michael J. Karels的 Congestion Avoidance and Control这篇paper,这篇1988年的paper中描述的RTT计算方法,就是我们当前所使用的计算方法,可能有的操作系统有一点修改,不过
转载
628阅读
0评论
0点赞
发布博客于 4 年前

centos7操作笔记

1、vi /etc/sysconfig/network-scripts/ifcfg-eno16777728
原创
283阅读
0评论
0点赞
发布博客于 4 年前

好玩的东西

http://tool.lu/
原创
228阅读
0评论
0点赞
发布博客于 4 年前

ubuntu下lua插件使用方式

找到wireshark全局配置文件夹地址 配置方法:STEP 1:cd /usr/share/wiresharkvi init.lua添加yunshang.lua的绝对路径,如下图STEP 2:不能用超级用户运行wireshark普通用户启用wireshark配置命令:root@Sandbox# groupadd wireshar
原创
562阅读
0评论
0点赞
发布博客于 4 年前

Go语言的工作空间和GOPATH环境变量

转载于:http://www.linuxidc.com/Linux/2015-02/113676.htmGo语言并没有强制一定要使用一定的工作空间和项目结构,对于小型的Go程序依靠Go run等命令就可以直接编译运行。然而,保持良好的工作空间和文件结构,对于管理源代码和发布程序都是非常有帮助的。对于大型的Go语言项目,工作空间则是一定要的。1、Go语言的工作空间结构
转载
1637阅读
0评论
0点赞
发布博客于 4 年前

[Issue]repo/repo init-解决同步源码Cannot get http://gerrit.googlesource.com/git-repo/clone.bundle

转载于:http://www.cnblogs.com/aaronLinux/p/5862235.html1. 前两天想搭建freescale L3.0.35_4.1.0_BSP包,结果LTIB环境搭建好,也编译出rootfs/uboot/kernel的Image了,但是准备移植uboot的时候发现uboot-200908版本的board/freescale下面并没有imx6的板
转载
410阅读
0评论
1点赞
发布博客于 4 年前

关于代码重构的一些想法

代码重构与迭代是系统开发过程中必然经历的过程。从我个人的认知来说,我追求完美,喜欢做出一些让自己赞叹的产品,我关注代码实现的细节。个人开发经历中,做过几次比较大规模的重构。第一次是在学校,做政府项目,自己开发,自己测试,自己打包,自己release版本。当大到一个系统,或小到一个函数,自己看着觉得不爽的时候,基本可以确定,实现已经不是最优的了,至少在自己的认知范围内,必然有优化的空间。我就是用
原创
271阅读
0评论
0点赞
发布博客于 4 年前

tcmalloc安装与使用

1、git clone https://github.com/junlon2006/gperftools2、./autogen.sh3、./configure4、make; make install5、 echo "/usr/local/lib" &gt; /etc/ld.so.conf.d/usr_local_lib.conf6、/sbin/ldconfig7、8、gcc动态连接,加上-ltcm...
原创
1211阅读
0评论
0点赞
发布博客于 4 年前

内存优化总结:ptmalloc、tcmalloc和jemalloc

转载于:http://www.cnhalo.net/2016/06/13/memory-optimize/概述需求系统的物理内存是有限的,而对内存的需求是变化的, 程序的动态性越强,内存管理就越重要,选择合适的内存管理算法会带来明显的性能提升。比如nginx, 它在每个连接accept后会malloc一块内存,作为整个连接生命周期内的内存池。 当HTTP请求到达
转载
57049阅读
1评论
13点赞
发布博客于 4 年前

物理内存与虚拟内存解析

转载于:第一层理解1.         每个进程都有自己独立的4G内存空间,各个进程的内存空间具有类似的结构 2.       一个新进程建立的时候,将会建立起自己的内存空间,此进程的数据,代码等从磁盘拷贝到自己的进程空间,哪些数据在哪里,都由进程控制表中的task_struct记录,task_struct中记录中一条链表,记录中内存空间的分配情况,
转载
290阅读
0评论
0点赞
发布博客于 4 年前

cgdb常用命令

多线程相关:thread all apply all bt
原创
264阅读
0评论
0点赞
发布博客于 4 年前

git 多次提交合并

git reset HEAD~numgit log --pretty=format:"%h %cd %s"
原创
244阅读
0评论
0点赞
发布博客于 4 年前

easy way to handle non-block tcp socket

static result_t __non_block_connect_process(void *sock){ tcp_sock_t *tcp_sock = (tcp_sock_t *)sock; result_t rc = E_OK; struct sockaddr_in addr; LOGT(C_TCP_THREAD_TAG, "Enter")
原创
127阅读
0评论
0点赞
发布博客于 4 年前

CAS锁与MUTEX锁性能测试

C源码:#include #include #include #include #define lock(lkp) do{ \ while(!__sync_bool_compare_and_swap(lkp, 0, 1)){ \ usleep(1000); \ } \}while(0)#define unlock(lkp) do{
原创
664阅读
1评论
0点赞
发布博客于 4 年前

CAS锁c源码实现

#define lock(lkp) do{ \ while(!__sync_bool_compare_and_swap(lkp, 0, 1)) \ sched_yield(); \} while(0)#define unlock(lkp) do{ \ *(lkp) = 0; \} while(0)
原创
644阅读
0评论
0点赞
发布博客于 4 年前

ring buf

#ifndef __RING_BUF_H__#define __RING_BUF_H__#include "stdint.h"void* ring_slab_new(void *slab_addr, uint32_t slab_length, size_t item_size);void ring_slab_del(void *slab);void* ring_slab_put(
原创
194阅读
0评论
0点赞
发布博客于 4 年前

一个内存空洞问题的定位

转载于:http://v2ex.io/2015/06/18/memory-hole-and-memory-leak-thought/背景:最近遇到一个问题,现象是主备反复倒换(产品的一个测试场景,对应到进程内多个线程反复起停),进程内存占用持续上涨直到系统OOM。从操作步骤及现象来看,第一感觉是有内存泄漏,但内存相关问题定位一般都比较棘手。可能由于近期代码做了比较大变动(日志优
转载
2432阅读
0评论
0点赞
发布博客于 4 年前