- container_of()理解和使用场景
qq_41072096
笔记指针链表
函数解释:在Linux内核源码中,实现和链表相关的接口list_entry()时,会调用container_of()宏定义,它的作用是:给定结构体中某个成员的地址、该结构体类型和该成员的名字获取这个成员所在的结构体变量的首地址。container_of()宏定义实现如下所示:/***container_of-castamemberofastructureouttothecontainingstru
- 【学习笔记】【内核】container_of 的用法
踏流星
学习笔记
根据结构体变量成员的指针获取整个结构体的指针#include2#include"stdlib.h"#include"string.h"#defineoffsetof(TYPE,MEMBER)((size_t)&((TYPE*)0)->MEMBER)#definecontainer_of(ptr,type,member)({\consttypeof(((type*)0)->member)*__mpt
- Linux内核中container_of宏的详细解释
嵌入式与Linux那些事
Linux内核LinuxLinux内核嵌入式软件开发C语言驱动开发
上一节拒绝造轮子!如何移植并使用Linux内核的通用链表(附完整代码实现)我们在分析Linux内核链表的时候注意到内核在求解结构体偏移的时候巧妙的使用了container_of宏定义,今天我们来详细剖析下内核到底是如何求解结构体成员变量的地址的。文章目录结构体在内存中是如何存储的container_of宏typeof(((type*)0)->member)consttypeof(((type*)0
- 嵌入式Linux_驱动开发:offset宏和container_of宏
Mr_WangAndy
嵌入式Linux_驱动开发驱动开发C语言offsetof宏container_of宏
今天学习了两个Linux内核中两个宏定义,下面逐步分析宏的作用。1.获取结构体元素的偏移量:offsetof宏#defineoffsetof(TYPE,MEMBER)((int)&((TYPE*)0)->MEMBER)第一步:0地址转为(TYPE*)0这是一个强制类型转换,把0地址强制类型转换成一个TYPE指针,这个指针指向一个TYPE类型的结构体变量。(实际上这个结构体变量可能不存在,但是只要我
- linux container 作用,linux container_of 宏作用
范奕信
linuxcontainer作用
在学习Linux驱动的过程中,遇到一个宏叫做container_of。该宏定义在include/linux/kernel.h中,首先来贴出它的代码:/***container_of-castamemberofastructureouttothecontainingstructure*@ptr:thepointertothemember.*@type:thetypeofthecontainerstr
- 【Linux】container_of宏
PannLZ
Linux系统之路linux驱动开发运维c语言
博客主页:PannLZ系列专栏:《Linux系统之路》不要让自己再留有遗憾,加油吧!container_of宏假设有一个structperson,其定义如下:structperson{intage;char*name;}p;只用age或name上的指针就可以检索包装(包含)该指针的整个结构。顾名思义,container_of宏用于查找指定结构字段的容器。该宏在include/linux/kerne
- linux驱动开发之常见面试问题
墨染 锦年
Linux内核驱动C语言学习linux驱动开发面试
linux驱动开发之常见面试问题新增驱动的基本操作寄存器基址怎么映射?probe里的常规操作。驱动中通常会定义一个私有结构体,里面包含一些内核结构体,但注册的时候只注册了某个成员,怎么找到这个私有结构体。什么是container_of如何给应用层提供接口什么是ioctl?如何在shell下调用驱动如何解决内核启动时卡死问题简述MMU的工作原理新增驱动的基本操作先在设备树里新建一个节点,填写comp
- Linux设备驱动开发学习笔记(等待队列,锁,字符驱动程序,设备树,i2C...)
【linux嵌入式】玩家
LInux嵌入式linux驱动开发学习嵌入式硬件嵌入式软件android
1.内核工具和辅助函数1.1宏container_ofcontainer_of函数可以通过结构体的成员变量检索出整个结构体函数原型:/*pointer指向结构体字段的指针container_type结构体类型container_field结构体字段名称返回值是一个指针*/container_of(pointer,container_type,container_field);structmcp23
- 结构体的几个知识点
HUI的技术笔记
c++
如何记住container_of的用法记住container_of的一个方法是将其视为一个宏,它接受三个参数:指向成员变量的指针、结构体类型和成员变量的名称。例如:#definecontainer_of(ptr,type,member)\((type*)((char*)(ptr)-offsetof(type,member)))这个宏的作用是返回包含给定成员变量的结构体的指针。要使用它,您需要提供一
- 【linux】工作队列简单示例
Yengi
testlinux运维服务器
#include#include#include#includestructwork_data{structwork_struct_work;intdata;};staticstructwork_datamy_work_struct;staticvoidwork_handler(structwork_struct*work){structwork_data*wdata=container_of(w
- 【Linux API 揭秘】container_of函数详解
dong__ge
LinuxAPI接口详解linuxLinux驱动开发Linux内核开发LinuxAPIiot
我的圈子:高级工程师聚集地我是董哥,高级嵌入式软件开发工程师,从事嵌入式Linux驱动开发和系统开发,曾就职于世界500强企业!创作理念:专注分享高质量嵌入式文章,让大家读有所得!文章目录1、container_of函数介绍2、container_of函数实现2.1static_assert2.2__same_type2.3(type*)02.4offsetof2.5container_of3、总
- linux驱动开发中常用函数--container_of的用法及分析
lagransun
Linux驱动开发常用函数linux驱动开发运维
版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/xi_xix_i/article/details/134625972目录1.开发环境2.container_of用法简介3.container_of详解4.container_of测试1.开发环境linux4.192.container_of用法简介
- 嵌入式C语言自我修养 (04):Linux 内核第一宏:container_of
宅学部落-王利涛
嵌入式C语言自我修养嵌入式C视频教程LinuxGNUC语法C语言教程
4.1typeof关键字ANSIC定义了sizeof关键字,用来获取一个变量或数据类型在内存中所占的存储字节数。GNUC扩展了一个关键字typeof,用来获取一个变量或表达式的类型。这里使用关键字可能不太合适,因为毕竟typeof还没有被写入C标准,是GCC扩展的一个关键字。为了方便,我们就姑且称之为关键字吧。通过使用typeof,我们可以获取一个变量或表达式的类型。所以typeof的参数有两种形
- 搞懂它,就可以把结构体玩活了~
最后一个bug
算法
正文大家周末好,我是bug菌~今天主要是跟大家详细聊聊container_of这个宏定义,非常经典的宏,只是一直没有抽时间细细品味,今天就跟大家一起来看看有何神奇之处:1offsetof首先我们需要简单看看offsetof(TYPE,MEMBER)这个宏定义,它是用于计算一个结构体中某个成员的偏移量。其第一个参数TYPE是一个结构体类型,第二个参数MEMBER是TYPE中的一个成员变量名。它将返回
- container_of解析及应用
weymin
优雅C语言系列c语言kernellinuxzephyr
container_of是一个C语言中比较少见,但实际经常用到的宏,在Linuxkernel中也有大范围的应用。
- 根据结构体成员变量的地址得出结构体的首地址(offsetof、container_of)
思识己
LinuxC语言指针linux驱动程序
关于offsetof()、container_of()函数详解一、前言二、offsetof()函数详解三、container_of()函数详解五、一个实例四、总结一、前言最近在看linux驱动时偶然间发现了这两个宏函数offsetof、container_of,刚开始看的时候一头雾水,后来网上找了些资料理解了下大概清楚了它的整个过程,下面我来解析一下#defineoffsetof(TYPE,MEM
- 嵌入式C语言自我修养《GNU C编译器扩展语法》学习笔记
ssz__
嵌入式工程师自我修养c语言学习笔记gnulinux
目录一、C语言标准和编译器二、指定初始化三、宏构造“利器”:语句表达式四、typeof与container_of宏五、零长度数组六、属性声明:section七、属性声明:aligned一、C语言标准和编译器C语言标准的发展过程:●K&RC.●ANSIC.●C99.●C11.二、指定初始化指定初始化结构体成员:和数组类似,在C语言标准中,初始化结构体变量也要按照固定的顺序,但在GNUC中我们可以通过
- linux内核中的offsetof、container_of、双链表list.h实践
dijkstar
linuxlist
先直接上程序,代码中包含了注释已经说清楚。在linux的应用层中编译、测试:感谢李慧芹的B站课程:史上最强最细腻的linux嵌入式C语言学习教程【李慧芹老师】_哔哩哔哩_bilibili#include#include//下面的宏来自于:#defineoffsetof(TYPE,MEMBER)((size_t)&((TYPE*)0)->MEMBER)#definecontainer_of(ptr,
- offsetof和container_of学习
云端之上___
#include#include//#include#defineoffsetof(TYPE,MEMBER)((size_t)&((TYPE*)0)->MEMBER)#definecontainer_of(PTR,TYPE,MEMBER)({\consttypeof(((TYPE*)0)->MEMBER)*__mptr=(PTR);\(TYPE*)((char*)__mptr-offsetof(T
- Linux container_of() 宏定义
_llc
linuxkernellinux运维服务器
container_of宏今天遇到了一段这样的代码,大致意思是通过该struct结构体变量的成员的地址来反推该struct结构体变量的地址并且用到了内核的宏,container_of()staticinlinestructnova_inode_info*NOVA_I(structinode*inode){returncontainer_of(inode,structnova_inode_info,
- 数组&字符串&结构体&共用体&枚举
小嵌同学
C语言高级专题系列arm单片机stm32物联网mcu
目录前言一、程序中内存从哪里来二、C语言的字符串类型三、字符串和字符数组的细节四、C语言之结构体四、offsetof宏与container_of宏五、共用体六、大小端模式七、枚举前言数组、字符串、结构体、共用体以及枚举是我们C语言学习中比较重要的几部分,通过这篇文章和大家一起来学习一下,并介绍一些笔试以及面试这部分知识的考点。一、程序中内存从哪里来1、程序执行需要内存支持对程序来说,内存就是程序的
- container_of函数用法
ebayboy
例二:它的作用显而易见,那就是根据一个结构体变量中的一个域成员变量的指针来获取指向整个结构体变量的指针。比如,有一个结构体变量,其定义如下:structdemo_struct{type1member1;type2member2;type3member3;type4member4;};structdemo_structdemo;同时,在另一个地方,获得了变量demo中的某一个域成员变量的指针,比如:
- container_of c语言中根据结构体成员的指针获取整个结构体的指针
CW96
c语言
container_ofc语言中根据结构体成员的指针获取整个结构体的指针#definecontainer_of(ptr,type,member)({\consttypeof(((type*)0)->member)*__mptr=(ptr);\(type*)((char*)__mptr-offsetof(type,member));\})宏的参数解释:ptr:指向结构体成员的指针。type:结构体的
- 【linux内核】container_of
程序员之一
C语言linux内核编程linuxc语言
/***container_of-castamemberofastructureouttothecontainingstructure*@ptr:thepointertothemember.*@type:thetypeofthecontainerstructthisisembeddedin.*@member:thenameofthememberwithinthestruct.**/#definec
- container_of 根据成员变量获得包含其的对象的地址!
shenmingik
好用的函数好用的函数
写在前面本系列文章的灵感出处均是各个技术书籍的读后感,详细书籍信息见文章最后的参考文献CONTAINER_OF在书中发现一个很有意思的宏,以此可以衍生出来其很多的用法,这个宏可以根据某个成员变量的地址得到包含这个成员变量地址的对象的地址。但是,这个过程很危险,慎用哦!我们先看这个宏的一个依赖宏:OFFSET_OF,它可以方便的获取此成员变量在这个对象之中的偏移量。/**@briefOFFSET_O
- LINUX之container_of解析
Ho_pe
linux
1.container_of宏的定义及实现1>Container_of在Linux内核中是一个常用的宏,用于从包含在某个结构中的指针获得结构本身的指针,通俗地讲就是通过结构体变量中某个成员的首地址进而获得整个结构体变量的首地址。2>接口:container_of(ptr,type,member)-->ptr:表示结构体中member的地址-->type:表示结构体类型-->member:表示结构体
- 【Linux内核链表】的原理及使用方式整理
浪矢杂谈
linux设备驱动开发算法与数据结构链表linux数据结构
本期主题:讲清Linux内核链表的使用方式,包括:双链表原理以及内核中双链表的使用方式解析内核常用宏(offset_of、container_of)的原理解析内核链表的使用方式(list_entry、list_for_each宏)往期链接:数据结构系列——先进先出队列queue数据结构系列——栈stack目录1.双链表定义2.内核双链表的差异3.内核常用宏(offsetof&container_o
- container_of()一个在内核中经常使用的宏
最后一个bug
arm开发linux数据结构算法嵌入式硬件
container_of()是一个在内核中经常使用的宏,用于获取一个结构体指针所在它所属的结构体的指针。宏的参数包括:ptr:结构体中某个成员的指针;type:结构体类型名称;member:结构体中ptr指向的成员名称。首先,宏container_of()确定了ptr指向的成员在结构体中的偏移(offset)。通过offsetof()宏就可以得到这个偏移,其参数为结构体类型和成员名称。得到偏移后,
- 内核中一些重要宏
柯基是只dog
阅读源码的过程中有大量使用到宏,所以作为开篇,其中有很多宏功能极其强大但也很晦涩难懂,本文不对宏思路做细致分析,因为网上基本上都能找得到,那么这篇应该算一个索引吧,只是为了本人记忆及查找方便container_of如果知道一个结构体中某个变量的指针,那么该宏就可以返回该变量对应的结构体指针#definecontainer_of(ptr,type,member)({\consttypeof(((ty
- linux 内核 container_of() 宏函数 原理详解
JEFF_张
container_of()宏函数源码:/***container_of-castamemberofastructureouttothecontainingstructure*@ptr:thepointertothemember.*@type:thetypeofthecontainerstructthisisembeddedin.*@member:thenameofthememberwithint
- 设计模式介绍
tntxia
设计模式
设计模式来源于土木工程师 克里斯托弗 亚历山大(http://en.wikipedia.org/wiki/Christopher_Alexander)的早期作品。他经常发表一些作品,内容是总结他在解决设计问题方面的经验,以及这些知识与城市和建筑模式之间有何关联。有一天,亚历山大突然发现,重复使用这些模式可以让某些设计构造取得我们期望的最佳效果。
亚历山大与萨拉-石川佳纯和穆雷 西乐弗斯坦合作
- android高级组件使用(一)
百合不是茶
androidRatingBarSpinner
1、自动完成文本框(AutoCompleteTextView)
AutoCompleteTextView从EditText派生出来,实际上也是一个文本编辑框,但它比普通编辑框多一个功能:当用户输入一个字符后,自动完成文本框会显示一个下拉菜单,供用户从中选择,当用户选择某个菜单项之后,AutoCompleteTextView按用户选择自动填写该文本框。
使用AutoCompleteTex
- [网络与通讯]路由器市场大有潜力可挖掘
comsci
网络
如果国内的电子厂商和计算机设备厂商觉得手机市场已经有点饱和了,那么可以考虑一下交换机和路由器市场的进入问题.....
这方面的技术和知识,目前处在一个开放型的状态,有利于各类小型电子企业进入
&nbs
- 自写简单Redis内存统计shell
商人shang
Linux shell统计Redis内存
#!/bin/bash
address="192.168.150.128:6666,192.168.150.128:6666"
hosts=(${address//,/ })
sfile="staticts.log"
for hostitem in ${hosts[@]}
do
ipport=(${hostitem
- 单例模式(饿汉 vs懒汉)
oloz
单例模式
package 单例模式;
/*
* 应用场景:保证在整个应用之中某个对象的实例只有一个
* 单例模式种的《 懒汉模式》
* */
public class Singleton {
//01 将构造方法私有化,外界就无法用new Singleton()的方式获得实例
private Singleton(){};
//02 申明类得唯一实例
priva
- springMvc json支持
杨白白
json springmvc
1.Spring mvc处理json需要使用jackson的类库,因此需要先引入jackson包
2在spring mvc中解析输入为json格式的数据:使用@RequestBody来设置输入
@RequestMapping("helloJson")
public @ResponseBody
JsonTest helloJson() {
- android播放,掃描添加本地音頻文件
小桔子
最近幾乎沒有什麽事情,繼續鼓搗我的小東西。想在項目中加入一個簡易的音樂播放器功能,就像華為p6桌面上那麼大小的音樂播放器。用過天天動聽或者QQ音樂播放器的人都知道,可已通過本地掃描添加歌曲。不知道他們是怎麼實現的,我覺得應該掃描設備上的所有文件,過濾出音頻文件,每個文件實例化為一個實體,記錄文件名、路徑、歌手、類型、大小等信息。具體算法思想,
- oracle常用命令
aichenglong
oracledba常用命令
1 创建临时表空间
create temporary tablespace user_temp
tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local
- 25个Eclipse插件
AILIKES
eclipse插件
提高代码质量的插件1. FindBugsFindBugs可以帮你找到Java代码中的bug,它使用Lesser GNU Public License的自由软件许可。2. CheckstyleCheckstyle插件可以集成到Eclipse IDE中去,能确保Java代码遵循标准代码样式。3. ECLemmaECLemma是一款拥有Eclipse Public License许可的免费工具,它提供了
- Spring MVC拦截器+注解方式实现防止表单重复提交
baalwolf
spring mvc
原理:在新建页面中Session保存token随机码,当保存时验证,通过后删除,当再次点击保存时由于服务器端的Session中已经不存在了,所有无法验证通过。
1.新建注解:
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
- 《Javascript高级程序设计(第3版)》闭包理解
bijian1013
JavaScript
“闭包是指有权访问另一个函数作用域中的变量的函数。”--《Javascript高级程序设计(第3版)》
看以下代码:
<script type="text/javascript">
function outer() {
var i = 10;
return f
- AngularJS Module类的方法
bijian1013
JavaScriptAngularJSModule
AngularJS中的Module类负责定义应用如何启动,它还可以通过声明的方式定义应用中的各个片段。我们来看看它是如何实现这些功能的。
一.Main方法在哪里
如果你是从Java或者Python编程语言转过来的,那么你可能很想知道AngularJS里面的main方法在哪里?这个把所
- [Maven学习笔记七]Maven插件和目标
bit1129
maven插件
插件(plugin)和目标(goal)
Maven,就其本质而言,是一个插件执行框架,Maven的每个目标的执行逻辑都是由插件来完成的,一个插件可以有1个或者几个目标,比如maven-compiler-plugin插件包含compile和testCompile,即maven-compiler-plugin提供了源代码编译和测试源代码编译的两个目标
使用插件和目标使得我们可以干预
- 【Hadoop八】Yarn的资源调度策略
bit1129
hadoop
1. Hadoop的三种调度策略
Hadoop提供了3中作业调用的策略,
FIFO Scheduler
Fair Scheduler
Capacity Scheduler
以上三种调度算法,在Hadoop MR1中就引入了,在Yarn中对它们进行了改进和完善.Fair和Capacity Scheduler用于多用户共享的资源调度
2. 多用户资源共享的调度
- Nginx使用Linux内存加速静态文件访问
ronin47
Nginx是一个非常出色的静态资源web服务器。如果你嫌它还不够快,可以把放在磁盘中的文件,映射到内存中,减少高并发下的磁盘IO。
先做几个假设。nginx.conf中所配置站点的路径是/home/wwwroot/res,站点所对应文件原始存储路径:/opt/web/res
shell脚本非常简单,思路就是拷贝资源文件到内存中,然后在把网站的静态文件链接指向到内存中即可。具体如下:
- 关于Unity3D中的Shader的知识
brotherlamp
unityunity资料unity教程unity视频unity自学
首先先解释下Unity3D的Shader,Unity里面的Shaders是使用一种叫ShaderLab的语言编写的,它同微软的FX文件或者NVIDIA的CgFX有些类似。传统意义上的vertex shader和pixel shader还是使用标准的Cg/HLSL 编程语言编写的。因此Unity文档里面的Shader,都是指用ShaderLab编写的代码,然后我们来看下Unity3D自带的60多个S
- CopyOnWriteArrayList vs ArrayList
bylijinnan
java
package com.ljn.base;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
/**
* 总述:
* 1.ArrayListi不是线程安全的,CopyO
- 内存中栈和堆的区别
chicony
内存
1、内存分配方面:
堆:一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式是类似于链表。可能用到的关键字如下:new、malloc、delete、free等等。
栈:由编译器(Compiler)自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中
- 回答一位网友对Scala的提问
chenchao051
scalamap
本来准备在私信里直接回复了,但是发现不太方便,就简要回答在这里。 问题 写道 对于scala的简洁十分佩服,但又觉得比较晦涩,例如一例,Map("a" -> List(11,111)).flatMap(_._2),可否说下最后那个函数做了什么,真正在开发的时候也会如此简洁?谢谢
先回答一点,在实际使用中,Scala毫无疑问就是这么简单。
- mysql 取每组前几条记录
daizj
mysql分组最大值最小值每组三条记录
一、对分组的记录取前N条记录:例如:取每组的前3条最大的记录 1.用子查询: SELECT * FROM tableName a WHERE 3> (SELECT COUNT(*) FROM tableName b WHERE b.id=a.id AND b.cnt>a. cnt) ORDER BY a.id,a.account DE
- HTTP深入浅出 http请求
dcj3sjt126com
http
HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则。计算机专家设计出HTTP,使HTTP客户(如Web浏览器)能够从HTTP服务器(Web服务器)请求信息和服务,HTTP目前协议的版本是1.1.HTTP是一种无状态的协议,无状态是指Web浏览器和Web服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后We
- 判断MySQL记录是否存在方法比较
dcj3sjt126com
mysql
把数据写入到数据库的时,常常会碰到先要检测要插入的记录是否存在,然后决定是否要写入。
我这里总结了判断记录是否存在的常用方法:
sql语句: select count ( * ) from tablename;
然后读取count(*)的值判断记录是否存在。对于这种方法性能上有些浪费,我们只是想判断记录记录是否存在,没有必要全部都查出来。
- 对HTML XML的一点认识
e200702084
htmlxml
感谢http://www.w3school.com.cn提供的资料
HTML 文档中的每个成分都是一个节点。
节点
根据 DOM,HTML 文档中的每个成分都是一个节点。
DOM 是这样规定的:
整个文档是一个文档节点
每个 HTML 标签是一个元素节点
包含在 HTML 元素中的文本是文本节点
每一个 HTML 属性是一个属性节点
注释属于注释节点
Node 层次
- jquery分页插件
genaiwei
jqueryWeb前端分页插件
//jquery页码控件// 创建一个闭包 (function($) { // 插件的定义 $.fn.pageTool = function(options) { var totalPa
- Mybatis与Ibatis对照入门于学习
Josh_Persistence
mybatisibatis区别联系
一、为什么使用IBatis/Mybatis
对于从事 Java EE 的开发人员来说,iBatis 是一个再熟悉不过的持久层框架了,在 Hibernate、JPA 这样的一站式对象 / 关系映射(O/R Mapping)解决方案盛行之前,iBaits 基本是持久层框架的不二选择。即使在持久层框架层出不穷的今天,iBatis 凭借着易学易用、
- C中怎样合理决定使用那种整数类型?
秋风扫落叶
c数据类型
如果需要大数值(大于32767或小于32767), 使用long 型。 否则, 如果空间很重要 (如有大数组或很多结构), 使用 short 型。 除此之外, 就使用 int 型。 如果严格定义的溢出特征很重要而负值无关紧要, 或者你希望在操作二进制位和字节时避免符号扩展的问题, 请使用对应的无符号类型。 但是, 要注意在表达式中混用有符号和无符号值的情况。
&nbs
- maven问题
zhb8015
maven问题
问题1:
Eclipse 中 新建maven项目 无法添加src/main/java 问题
eclipse创建maevn web项目,在选择maven_archetype_web原型后,默认只有src/main/resources这个Source Floder。
按照maven目录结构,添加src/main/ja
- (二)androidpn-server tomcat版源码解析之--push消息处理
spjich
javaandrodipn推送
在 (一)androidpn-server tomcat版源码解析之--项目启动这篇中,已经描述了整个推送服务器的启动过程,并且把握到了消息的入口即XmppIoHandler这个类,今天我将继续往下分析下面的核心代码,主要分为3大块,链接创建,消息的发送,链接关闭。
先贴一段XmppIoHandler的部分代码
/**
* Invoked from an I/O proc
- 用js中的formData类型解决ajax提交表单时文件不能被serialize方法序列化的问题
中华好儿孙
JavaScriptAjaxWeb上传文件FormData
var formData = new FormData($("#inputFileForm")[0]);
$.ajax({
type:'post',
url:webRoot+"/electronicContractUrl/webapp/uploadfile",
data:formData,
async: false,
ca
- mybatis常用jdbcType数据类型
ysj5125094
mybatismapperjdbcType
MyBatis 通过包含的jdbcType
类型
BIT FLOAT CHAR