- Linux驱动开发:掌握SPI通信机制
夜星辰2025
Linux驱动开发linux驱动开发SPI
目录标题1、SPI简介2、SPI通信机制3、Linux内核中的SPI支持4、SPI核心API5、SPI控制器驱动6、SPI设备驱动7、编写SPI设备驱动8、调试SPI驱动在Linux驱动开发中,串行外设接口(SPI)是一种常见的高速全双工通信协议,用于连接处理器和各种外设。本文将深入探讨SPI的工作原理,并演示如何在Linux环境下开发SPI驱动程序。1、SPI简介SPI(SerialPeriph
- 【Linux内核】Linux驱动开发
撬动未来的支点
Linux内核linux驱动开发运维
推荐书籍:《Linux内核探秘:深入解析文件系统和设备驱动的架构与设计》知识点x86的IO地址空间和内存地址空间是独立的两套地址空间,并且使用不同的指令访问。MOV,IN,OUT。内存映射I/O可以将IO映射到内存。ARM等RISC采用统一编编址,无独立IO空间概念。为什么有IO地址空间的概念。因为在PCI总线下,外部芯片都有控制寄存器(配置空间)和设备本地内存(内存空间)两个部分,他们是独立的。
- Linux设备驱动SPI总线
ldh-02
linux驱动开发单片机
SPI更全面内容可以查看我的githubSPI驱动的框架与I2C类似,都是分为主机控制器驱动和设备驱动,我们需要实现的是具体设备的驱动,主机控制器的驱动由Linux内核实现,也需要了解部分重要文件linux/drivers/spi/spi.cLinux提供的通用接口封装层驱动linux/drivers/spi/spidev.clinux提供的SPI通用设备驱动程序linux/include/lin
- util-linux debug
帆子_8c3a
//copyfrominclude/debug.h//*It'spossibletoinitializethemaskbycommadelimitedstringswith//*subsystemnames(e.g."LIBMOUNT_DEBUG=options,tab").Inthiscaseis//*necessarytodefinemasknamesarray.Thisfunctionali
- Linux设备驱动之SPI驱动
关于电机的一切
linux驱动开发arm开发
Linux下SPI驱动分成两部分:主机驱动和设备驱动。主机驱动:主机侧SPI控制器使用structspi_master描述,该结构体中包含了SPI控制器的序号(很多SoC中存在多个SPI控制器),片选数量,SPI信息传输的速率,配置SPI模式的函数指针(4种模式),实现数据传输的函数指针。structspi_master{structdevicedev;structlist_headlist;s1
- Python-难点-获取项目根目录
1需求2接口3示例4参考资料在Python中,“设置根目录”通常指指定项目的基准路径,以便统一管理文件路径。以下是几种常见方法,结合不同场景和兼容性需求:一、基于路径拼接(最常用)通过手动拼接路径来定义根目录,适用于结构固定的项目。importos#方法1:根据当前文件位置向上递归定义(推荐)defset_project_root():current_file=os.path.abspath(__
- git上传代码到Github
第一步:下载git可以到git的官网去下载第二步:到github上创建自己的代码库登录到Github官网(github加载慢的可以到gitee网站搜索FastGithub下载安装)主页右上角加号点击newrepository新建填好项目名字后其余默认即可(不要勾选其他的设置)第三步:新建文件夹作为本地代码库配置git为了方便使用git我们要在你要上传的文件夹内,鼠标右击然后点击gitbashher
- Linux下命令find命令文件查找
清醒云思
Linux基础阶段linux数据库运维
Linux下命令find命令文件查找前言一、find命令使用介绍二、Linux文件权限4位数含义总结前言find命令是Linux系统中的一个常用命令,用于在指定的目录中查找符合条件的文件或目录。一、find命令使用介绍find命令是Linux和Unix系统中常用的文件查找工具。它可以在指定目录及其子目录中查找符合指定条件的文件或目录,并将结果输出到终端。find命令的语法如下:find[path]
- Linux find命令:强大的文件搜索工具
Linux编程小课堂
linux命令linuxlinux命令findfind查找
find命令是Linux系统中最强大且最常用的文件搜索工具之一。它允许用户根据各种条件(如文件名、大小、修改时间、权限等)在目录树中查找文件,并对找到的文件执行操作。本文将详细介绍find命令的基本语法、常见使用场景。一、find简述find命令的基本语法格式如下:find [选项] [路径] [表达式]1.1options(选项)控制find的全局行为,通常放在命令开头,影响整个查找过程:选项作
- Docker-compose:服务编排
Docker-compose介绍服务编排:按照一定的业务规则批量管理容器在微服务架构的应用系统中,一般包含N个微服务,且每个微服务一般都会部署多个实例。此时,如果每个微服务都要手动启停,维护的工作量会很大。要从Dockerfilebuildimage或者去dockerhub拉取image要创建多个container要管理这些container(启动/停止/删除)...Docker-composeD
- Docker 安装、常用命令、应用部署
Docker安装Docker可支持在Mac、Windows、Linux系统上安装,但是在Windows系统中Docker的安装包目前仅有win10专业版和企业版的。win10家庭版可以采用开启Hyper-V伪装成专业版绕过安装检测。还有一种方式是通过Dockertoolbox来安装(适用于win7/win8/win10家庭版),下载地址:docker-toolbox-windows-docker-
- Windows使用目录链接(Junction)清理C盘空间:通用方法详解
兔子蟹子
学习笔记windows
在Windows系统中,C盘空间不足是常见问题,尤其是系统盘容量较小的设备。通过创建目录链接(Junction),可以将原本位于C盘的大体积文件夹(如应用缓存、用户数据等)迁移到其他分区,同时保持原有路径的访问逻辑不变。本文以IntelliJIDEA缓存目录迁移为例,提供一套通用的解决方案,帮助您安全释放C盘空间。操作步骤详解1.关闭目标应用为避免文件占用导致迁移失败,需先关闭相关应用。例如,关闭
- Linux 怎么恢复sshd.service
瑶山
Linuxlinux运维服务器sshd
目录检查sshd服务状态启动sshd服务检查sshd服务是否成功启动重新连接SSH调试和日志(如果遇到问题)误删了sshd在Linux系统中,如果你不小心停止了sshd服务或者它因为某些原因停止了,你可以通过以下步骤来恢复并重启sshd服务。这里假设你使用的是基于Systemd的系统(比如最新的Ubuntu、Debian、CentOS7/8等),因为Systemd是目前大多数现代Linux发行版默
- nohup命令和tail命令,实现后台任务运行(不用一直开着运行窗口)
qq_48626006
服务器linux运维深度学习
使用nohup、tail和jobs命令:提升Linux操作效率的利器在Linux系统中,命令行工具的强大之处不仅在于其丰富的功能,还在于其灵活的组合使用。本文将介绍三个常用的Linux命令——nohup、tail和jobs,以及它们在实际使用中的一些场景和方法。nohup命令nohup(nohangup)命令用于在终端关闭后继续运行一个进程。通常,当我们在终端中运行一个命令时,如果关闭了终端,会导
- 创建linux端口映射连接小网
Jaliang_
linux服务器运维
方法1:在执行机上配置SSH服务端转发这个做法是在执行机上配置一个常驻SSH隧道,把大网的某个端口长期转发到小网单板的22端口。操作步骤1️⃣在执行机上创建一个systemd服务假设:单板IP:192.168.1.10单板SSH端口:22执行机开放端口:2222(这个是外网访问用的端口)在执行机上编辑一个systemdunit:sudonano/etc/systemd/system/soc-bo
- Linux通过 SSH 使用 rsync 进行文件传输
赛男丨木子丿小喵
运维linuxssh运维
目录目的整体思路ssh建立连接A服务器上的操作输入ssh-keygen生成密钥对查看公钥B服务器上的操作设置公钥认证A服务器上的操作使用SSH登录进行测试同步数据知识拓展SSH(SecureShell)rsync(RemoteSync)目的使用SSH(SecureShell)建立两台Linux服务器之间的连接,并使用rsync(RemoteSync)来同步文件,假设A服务器想同步数据到B服务器整体
- Linux系统启动流程以及基础命令下一些根目录的含义
Linux系统启动流程:1.开机自检,BIOS,在主板上的ROM芯片上存储2.加载MBR\UEFI3.GRUB2引导菜单4.加载内核5.启动init(初始化)0~6·0关机·1无网络的单用户模式(root)·2无网络的多用户模式·3有网络的多用户模式·4(无)保留模式·5GUI有网络多用户模式·6重启模式6.启动内核模块7.启动不同级别的脚本8.启动成功(sshd)Linux系统启动过程详解一、启
- 高阶知识库搭建实战五、(向量数据库Milvus安装)
伯牙碎琴
大模型数据库milvus大模型AI
以下是关于在Windows环境下直接搭建Milvus向量数据库的教程:本教程分两部分,第一部分是基于docker安装,在Windows环境下直接安装Milvus向量数据库,目前官方推荐的方式是通过Docker进行部署,因为Milvus的运行环境依赖于Linux系统。如果你希望在Windows上直接运行Milvus,可以考虑使用MilvusLite版本,这是一个轻量级的Python库,适用于快速原型
- Linux 压缩、解压文件的 4 种方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法
寒水馨
Linux问题解决方案linux服务器运维压缩解压
Linux压缩、解压文件的4种方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法文章目录Linux压缩、解压文件的4种方式。tar、gzip、gunzip、zip、unzip、7z命令使用方法1.tar1.1.压缩:1.2.解压:1.3.tar命令各参数含义2.gzip、gunzip2.1.压缩:2.2.解压:2.3.gzip、gunzip命令各参数含义2.3.1.gzip
- WPF 初始界面启动时播放背景音乐
上元星如雨
C#&Godotwpf
在WPF项目中实现启动时播放背景音乐且只播放一次,可以通过以下步骤实现。这里使用MediaPlayer类来播放音频,并确保音乐只播放一次:完整实现方案1.添加音频文件到项目在项目中创建Assets或Media文件夹添加音频文件(如background.mp3)设置文件属性:生成操作:Resource复制到输出目录:不复制2.修改App.xaml.csusingSystem.Windows;usin
- Three.js入门:创建第一个3D场景
薯条说影
Three.js3D场景创建跨平台设置安全异常处理HTML骨架搭建
背景简介Three.js是一个轻量级的3D图形库,它让Web开发者能够在浏览器中创建和显示3D图形。本章介绍如何设置环境以开始使用Three.js,包括不同操作系统下的安装步骤、安全异常处理以及基本的HTML骨架创建。安装与设置操作系统兼容性:Three.js的使用不仅限于Windows系统。对于其他操作系统,如Linux和MacOS,需要将可执行文件复制到目标目录,并通过命令行启动。无论是哪种操
- 2 MySQL配置文件详解
笑Skr人啊
Windows图片.png复制配置文件[root@rootmysql]#cp/usr/share/mysql/my-huge.cnf/etc/my.cnfcp:是否覆盖"/etc/my.cnf"?y[client]port=3306#客户端端口号socket=/data/3306/mysql.sock#socket文件是linux/unix系统特有的,用户在该环境下的客户端连接可以不通过tcp/i
- Linux命令行入门指南:基础操作与系统结构详解
运维帮手大橙子
linux运维服务器
什么是Linux指令?指在Linux终端中输入的内容就称为指令,用于与操作系统进行交互。文件:一般都是一个独立的东西,可以通过一些特定的工具进行打开,并且不能再包含除文字以外的东西,包括文本、图片、二进制可执行程序等,一切皆文件指的不仅是普通文件,也包括设备、进程、套接字等。文件夹:可以在其中包含其他文件的东西linux一切皆文件,/dev/sda是磁盘设备,/proc/cpuinfo是一个文件,
- flashback database遇到不能flashback的tablespace reset incarnation
Howdoweflashbackadatabasetoaguaranteedrestorepoint(GRP)thathas2tablespaceswithflashbackoffafteraRESETLOGSwasdone?Flashbackfailswiththeerrorsbelow.Itfailsonthedatafilesforthetwotablespaceswithflashback
- ASM 下 file全名
jnrjian
数据库oracle
HowtocollectthefullpathnameofthefilesinASMdiskgroupsSolutionSetyourORACLE_SIDtotheASMinstancename.ConnecttotheASMinstance:in10g:sqlplus/assysdbain11g:sqlplus/assysasmThenperformthefollowingquery:SELEC
- Taro 网络 API 详解与实用案例
Taro网络API详解与实用案例在现代前端开发中,网络通信是不可或缺的一环。Taro作为一款多端开发框架,提供了丰富且统一的网络API,帮助开发者在小程序、H5、ReactNative等多端环境下高效地进行数据交互。本文将详细介绍Taro的四大网络API:Taro.request、Taro.uploadFile、Taro.downloadFile和Taro.connectSocket,并结合实际案
- required archivelog files for a guaranteed restore point 查找GRP需要的归档文件
jnrjian
oraclesql
Appliesto:OracleDatabase-EnterpriseEdition-Version11.2.0.2andlaterInformationinthisdocumentappliestoanyplatform.GoalHowcanyoudeterminetherequiredarchivelogfilesneededforaguaranteedrestorepointbeforeru
- python docker
阿狸的家
SDNdocker
我们的开发人员和布署人员经常因环境问题,而使得安装过程困难重重,相比于虚拟机较少硬件资源的虚拟化,同时不需要加载虚拟机操作系统的耗时,因为docker共享宿主机的操作系统Centos和Ubunta共用内核kernel即bootfs相同,但是加载内核的rootfs不同,即文件的结构目录不同docker三要素docker可以看作为一个小型的linux系统,部署时秒级启动镜像:模板(应用程序代码),一个
- 云原生周刊:K8s 中的后量子密码学
KubeSphere 云原生
云原生kubernetes密码学
开源项目推荐KanisterKanister是一个由CNCF托管的开源框架,最初由VeeamKasten团队创建,旨在简化Kubernetes上的应用程序级别数据操作管理。它通过定义Blueprint、ActionSet和Profile等CRD(自定义资源)及其相关组件,为专家提供一种模板化的方式,将复杂的数据库或分布式系统备份/恢复逻辑封装在可重用、可共享的蓝图中。Kanister支持异步或同步
- 设计模式-工厂方法模式 Java
模式概述工厂方法模式(FactoryMethodPattern)又称为工厂模式,定义创建对象的接口,但将具体实现延迟到子类,实现对象创建与使用的解耦。简单代码示例//1.抽象产品:日志记录器接口interfaceLogger{voidlog(Stringmessage);}//2.具体产品:文件日志记录器classFileLoggerimplementsLogger{@Overridepublic
- PHP如何实现二维数组排序?
IT独行者
二维数组PHP排序
二维数组在PHP开发中经常遇到,但是他的排序就不如一维数组那样用内置函数来的方便了,(一维数组排序可以参考本站另一篇文章【PHP中数组排序函数详解汇总】)。二维数组的排序需要我们自己写函数处理了,这里UncleToo给大家分享一个PHP二维数组排序的函数:
代码:
functionarray_sort($arr,$keys,$type='asc'){
$keysvalue= $new_arr
- 【Hadoop十七】HDFS HA配置
bit1129
hadoop
基于Zookeeper的HDFS HA配置主要涉及两个文件,core-site和hdfs-site.xml。
测试环境有三台
hadoop.master
hadoop.slave1
hadoop.slave2
hadoop.master包含的组件NameNode, JournalNode, Zookeeper,DFSZKFailoverController
- 由wsdl生成的java vo类不适合做普通java vo
darrenzhu
VOwsdlwebservicerpc
开发java webservice项目时,如果我们通过SOAP协议来输入输出,我们会利用工具从wsdl文件生成webservice的client端类,但是这里面生成的java data model类却不适合做为项目中的普通java vo类来使用,当然有一中情况例外,如果这个自动生成的类里面的properties都是基本数据类型,就没问题,但是如果有集合类,就不行。原因如下:
1)使用了集合如Li
- JAVA海量数据处理之二(BitMap)
周凡杨
java算法bitmapbitset数据
路漫漫其修远兮,吾将上下而求索。想要更快,就要深入挖掘 JAVA 基础的数据结构,从来分析出所编写的 JAVA 代码为什么把内存耗尽,思考有什么办法可以节省内存呢? 啊哈!算法。这里采用了 BitMap 思想。
首先来看一个实验:
指定 VM 参数大小: -Xms256m -Xmx540m
- java类型与数据库类型
g21121
java
很多时候我们用hibernate的时候往往并不是十分关心数据库类型和java类型的对应关心,因为大多数hbm文件是自动生成的,但有些时候诸如:数据库设计、没有生成工具、使用原始JDBC、使用mybatis(ibatIS)等等情况,就会手动的去对应数据库与java的数据类型关心,当然比较简单的数据类型即使配置错了也会很快发现问题,但有些数据类型却并不是十分常见,这就给程序员带来了很多麻烦。
&nb
- Linux命令
510888780
linux命令
系统信息
arch 显示机器的处理器架构(1)
uname -m 显示机器的处理器架构(2)
uname -r 显示正在使用的内核版本
dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)
hdparm -i /dev/hda 罗列一个磁盘的架构特性
hdparm -tT /dev/sda 在磁盘上执行测试性读取操作
cat /proc/cpuinfo 显示C
- java常用JVM参数
墙头上一根草
javajvm参数
-Xms:初始堆大小,默认为物理内存的1/64(<1GB);默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制
-Xmx:最大堆大小,默认(MaxHeapFreeRatio参数可以调整)空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制
-Xmn:新生代的内存空间大小,注意:此处的大小是(eden+ 2
- 我的spring学习笔记9-Spring使用工厂方法实例化Bean的注意点
aijuans
Spring 3
方法一:
<bean id="musicBox" class="onlyfun.caterpillar.factory.MusicBoxFactory"
factory-method="createMusicBoxStatic"></bean>
方法二:
- mysql查询性能优化之二
annan211
UNIONmysql查询优化索引优化
1 union的限制
有时mysql无法将限制条件从外层下推到内层,这使得原本能够限制部分返回结果的条件无法应用到内层
查询的优化上。
如果希望union的各个子句能够根据limit只取部分结果集,或者希望能够先排好序在
合并结果集的话,就需要在union的各个子句中分别使用这些子句。
例如 想将两个子查询结果联合起来,然后再取前20条记录,那么mys
- 数据的备份与恢复
百合不是茶
oraclesql数据恢复数据备份
数据的备份与恢复的方式有: 表,方案 ,数据库;
数据的备份:
导出到的常见命令;
参数 说明
USERID 确定执行导出实用程序的用户名和口令
BUFFER 确定导出数据时所使用的缓冲区大小,其大小用字节表示
FILE 指定导出的二进制文
- 线程组
bijian1013
java多线程threadjava多线程线程组
有些程序包含了相当数量的线程。这时,如果按照线程的功能将他们分成不同的类别将很有用。
线程组可以用来同时对一组线程进行操作。
创建线程组:ThreadGroup g = new ThreadGroup(groupName);
&nbs
- top命令找到占用CPU最高的java线程
bijian1013
javalinuxtop
上次分析系统中占用CPU高的问题,得到一些使用Java自身调试工具的经验,与大家分享。 (1)使用top命令找出占用cpu最高的JAVA进程PID:28174 (2)如下命令找出占用cpu最高的线程
top -Hp 28174 -d 1 -n 1
32694 root 20 0 3249m 2.0g 11m S 2 6.4 3:31.12 java
- 【持久化框架MyBatis3四】MyBatis3一对一关联查询
bit1129
Mybatis3
当两个实体具有1对1的对应关系时,可以使用One-To-One的进行映射关联查询
One-To-One示例数据
以学生表Student和地址信息表为例,每个学生都有都有1个唯一的地址(现实中,这种对应关系是不合适的,因为人和地址是多对一的关系),这里只是演示目的
学生表
CREATE TABLE STUDENTS
(
- C/C++图片或文件的读写
bitcarter
写图片
先看代码:
/*strTmpResult是文件或图片字符串
* filePath文件需要写入的地址或路径
*/
int writeFile(std::string &strTmpResult,std::string &filePath)
{
int i,len = strTmpResult.length();
unsigned cha
- nginx自定义指定加载配置
ronin47
进入 /usr/local/nginx/conf/include 目录,创建 nginx.node.conf 文件,在里面输入如下代码:
upstream nodejs {
server 127.0.0.1:3000;
#server 127.0.0.1:3001;
keepalive 64;
}
server {
liste
- java-71-数值的整数次方.实现函数double Power(double base, int exponent),求base的exponent次方
bylijinnan
double
public class Power {
/**
*Q71-数值的整数次方
*实现函数double Power(double base, int exponent),求base的exponent次方。不需要考虑溢出。
*/
private static boolean InvalidInput=false;
public static void main(
- Android四大组件的理解
Cb123456
android四大组件的理解
分享一下,今天在Android开发文档-开发者指南中看到的:
App components are the essential building blocks of an Android
- [宇宙与计算]涡旋场计算与拓扑分析
comsci
计算
怎么阐述我这个理论呢? 。。。。。。。。。
首先: 宇宙是一个非线性的拓扑结构与涡旋轨道时空的统一体。。。。
我们要在宇宙中寻找到一个适合人类居住的行星,时间非常重要,早一个刻度和晚一个刻度,这颗行星的
- 同一个Tomcat不同Web应用之间共享会话Session
cwqcwqmax9
session
实现两个WEB之间通过session 共享数据
查看tomcat 关于 HTTP Connector 中有个emptySessionPath 其解释如下:
If set to true, all paths for session cookies will be set to /. This can be useful for portlet specification impleme
- springmvc Spring3 MVC,ajax,乱码
dashuaifu
springjquerymvcAjax
springmvc Spring3 MVC @ResponseBody返回,jquery ajax调用中文乱码问题解决
Spring3.0 MVC @ResponseBody 的作用是把返回值直接写到HTTP response body里。具体实现AnnotationMethodHandlerAdapter类handleResponseBody方法,具体实
- 搭建WAMP环境
dcj3sjt126com
wamp
这里先解释一下WAMP是什么意思。W:windows,A:Apache,M:MYSQL,P:PHP。也就是说本文说明的是在windows系统下搭建以apache做服务器、MYSQL为数据库的PHP开发环境。
工欲善其事,必须先利其器。因为笔者的系统是WinXP,所以下文指的系统均为此系统。笔者所使用的Apache版本为apache_2.2.11-
- yii2 使用raw http request
dcj3sjt126com
http
Parses a raw HTTP request using yii\helpers\Json::decode()
To enable parsing for JSON requests you can configure yii\web\Request::$parsers using this class:
'request' =&g
- Quartz-1.8.6 理论部分
eksliang
quartz
转载请出自出处:http://eksliang.iteye.com/blog/2207691 一.概述
基于Quartz-1.8.6进行学习,因为Quartz2.0以后的API发生的非常大的变化,统一采用了build模式进行构建;
什么是quartz?
答:简单的说他是一个开源的java作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。并且还能和Sp
- 什么是POJO?
gupeng_ie
javaPOJO框架Hibernate
POJO--Plain Old Java Objects(简单的java对象)
POJO是一个简单的、正规Java对象,它不包含业务逻辑处理或持久化逻辑等,也不是JavaBean、EntityBean等,不具有任何特殊角色和不继承或不实现任何其它Java框架的类或接口。
POJO对象有时也被称为Data对象,大量应用于表现现实中的对象。如果项目中使用了Hiber
- jQuery网站顶部定时折叠广告
ini
JavaScripthtmljqueryWebcss
效果体验:http://hovertree.com/texiao/jquery/4.htmHTML文件代码:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>网页顶部定时收起广告jQuery特效 - HoverTree<
- Spring boot内嵌的tomcat启动失败
kane_xie
spring boot
根据这篇guide创建了一个简单的spring boot应用,能运行且成功的访问。但移植到现有项目(基于hbase)中的时候,却报出以下错误:
SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.Lif
- leetcode: sort list
michelle_0916
Algorithmlinked listsort
Sort a linked list in O(n log n) time using constant space complexity.
====analysis=======
mergeSort for singly-linked list
====code======= /**
* Definition for sin
- nginx的安装与配置,中途遇到问题的解决
qifeifei
nginx
我使用的是ubuntu13.04系统,在安装nginx的时候遇到如下几个问题,然后找思路解决的,nginx 的下载与安装
wget http://nginx.org/download/nginx-1.0.11.tar.gz
tar zxvf nginx-1.0.11.tar.gz
./configure
make
make install
安装的时候出现
- 用枚举来处理java自定义异常
tcrct
javaenumexception
在系统开发过程中,总少不免要自己处理一些异常信息,然后将异常信息变成友好的提示返回到客户端的这样一个过程,之前都是new一个自定义的异常,当然这个所谓的自定义异常也是继承RuntimeException的,但这样往往会造成异常信息说明不一致的情况,所以就想到了用枚举来解决的办法。
1,先创建一个接口,里面有两个方法,一个是getCode, 一个是getMessage
public
- erlang supervisor分析
wudixiaotie
erlang
当我们给supervisor指定需要创建的子进程的时候,会指定M,F,A,如果是simple_one_for_one的策略的话,启动子进程的方式是supervisor:start_child(SupName, OtherArgs),这种方式可以根据调用者的需求传不同的参数给需要启动的子进程的方法。和最初的参数合并成一个数组,A ++ OtherArgs。那么这个时候就有个问题了,既然参数不一致,那