- ThinkPHP5 RCE漏洞代码审计
Yn8rt
thinkPHP代码审计cmsmvcphpthinkphp
前言thinkphp下载漏洞影响版本:5.0.0app['hook']->listen('module_init');try{//实例化控制器$instance=$this->app->controller($this->controller,$this->rule->getConfig('url_controller_layer'),$this->rule->getConfig('control
- linux驱动入口函数module_init如何被调用
爱因私谈
大多的Linux驱动程序需要包含下面三个头文件:#include#include#includeinit.h定义了驱动的初始化和退出相关的函数。kernel.h定义了经常用到的函数原型及宏定义。module.h定义了内核模块相关的函数、变量及宏。几乎每个linux驱动都有个module_init(与module_exit的定义在Init.h(/include/linux)中)。没错,驱动的加载就靠
- 【linux驱动】详细剖析第一个hello word驱动程序
☞黑心萝卜三条杠☜
LINUXlinux
文章目录驱动程序的框架驱动程序的使用示例驱动程序的框架Linux驱动的基本框架主要由模块加载函数,模块卸载函数,模块许可证声明,模块参数,模块导出符号,模块作者信息等几部分组成,其中模块参数,模块导出符号,模块作者信息是可选的部分,也就是可要可不要。剩余部分是必须有的。模块加载函数当加载驱动模块时,内核会通过module_init(xxx_init);执行模块加载函数,完成模块加载函数中的初始化工
- IMX6LL|内核模块
左手的月光
嵌入式硬件linux
内核模块基本概念作用解决linux内核可扩展性和可维护性相对较差的缺陷现代内核派系宏内核:关键功能和服务功能均在内核空间提供运行效率高扩展性较差微内核:内核空间只提供关键功能,服务功能在用户空间提供运行效率较低安全性、扩展性较高内核模块加载/卸载使用insmod命令加载使用rmmod命令卸载内核模块入口/出口module_init():加载模块式该函数自动执行,进行初始化操作module_exit
- linux htb 源代码,LINUX TC:HTB相关源码
白条说再来一碗
linuxhtb源代码
LINUXTC:HTB相关源码收藏HTB(hierarchytokenbuffer)是linuxtc(trafficcontrol)模块中的排队队列的一种。它的配置比CBQ要简单.同时实现功能也很强大。下面,就来看看,HTB在linux中的源码。1、Qdisc_ops的注册先从module_init函数看起(遵从fudan_abc的建议)staticint__inithtb_module_init
- linux内核initcall放置在各个section中函数执行流程
良知犹存
Linuxlinux
前言linux以及嵌入式一些代码,我们看到core_initcall、device_initcall等等需要链接器分配各个section,并且在启动该模块时候执行。下面我们详细追溯一下路径作者:良知犹存转载授权以及围观:欢迎关注微信公众号:羽林君或者添加作者个人微信:become_me正文fs_initcall函数介绍:Linux内核中的fs_initcall函数:用于在引导过程中进行文件系统等初
- linux设备驱动中的module_init
飘忽不定的bug
经验分享linux驱动开发运维
在linux中系统对驱动程序的加载提供了两种方式静态编译进内核和动态加载,并且驱动开发者通常会提供一个intxxx_init(void)函数,并通过诸如module_init(xxx_init)、early_initcall(xxx_init)等的方式使驱动程序被运行时能第一时间先执行xxx_init函数。那么内核是怎样做到这一点的呢?下面我们从驱动静态编译进内核和动态加载这两种来分析这个过程。首
- 第一个hello world驱动程序
一路向后
1.hello.c#include#include#includestaticint__inittest_init(void){printk("initmodule\n");return0;}staticvoid__exittest_exit(void){printk("exitmodule\n");}module_init(test_init);module_exit(test_exit);2.
- imx VPU解码分析5-Linux设备驱动hantro
huntenganw
音视频嵌入式Linuxfpga开发
vpu的使用依赖驱动,驱动名称是hantro,在设备节点中为/dev/mxc_hantro。本文看看其具体的实现。Linux内核驱动源文件在kernel/drivers/mxc下,在hantro库中也发现有这个驱动,文件在hantro/decoder_sw/software/linux/pcidriver。这里以内核中的驱动文件为主,后面再看二者的差别。驱动模块的注册与卸载:module_init
- 注册字符设备驱动
是个小轮胎
嵌入式linux
模块加载#include#include/*驱动入口函数*/staticint__initxxx_init(void){/*入口函数具体内容*/return0;}/*驱动出口函数*/staticvoid__exitxxx_exit(void){/*出口函数具体内容*/}/*将上面两个函数指定为驱动的入口和出口函数*/module_init(xxx_init);module_exit(xxx_exi
- module_init和module_exit,init_module和cleanup_module
bytxl
linux内核
就像你写C程序需要包含C库的头文件那样,Linux内核编程也需要包含Kernel头文件,大多的Linux驱动程序需要包含下面三个头文件:#include#include#include其中,init.h定义了驱动的初始化和退出相关的函数,kernel.h定义了经常用到的函数原型及宏定义,module.h定义了内核模块相关的函数、变量及宏。几乎每个linux驱动都有个module_init(与mod
- linux驱动程序——入门
OopspoO
Unix_LinuxLinux源码阅读Read_Noteslinux学习c语言驱动开发
编写linux驱动程序——HelloWorld环境:$uname-r6.1.0-13-amd64基本步骤一、建立Linux驱动框架(装载、卸载Linux驱动)Linux内核在使用驱动时首先要装载驱动,在装载过程中进行一些初始化动作(建立设备文件、分配内存等),在驱动程序中需提供相应函数来处理驱动初始化工作,该函数须使用module_init宏指定;Linux系统在退出是需卸载Linux驱动,卸载过
- linux驱动目录在哪里,详细讲解Linux驱动程序
鹿鹿超甜丫
linux驱动目录在哪里
一?编写Linux驱动程序1.建立Linux驱动骨架?Linux内核在使用驱动时需要装载与卸载驱动?装载驱动:建立设备文件、分配内存地址空间等;module_init函数处理驱动初始化?卸载驱动:删除设备文件、释放内存地址空间等;module_exit函数处理退出包含这两个函数的两个宏的C程序文件也可看做是Linux驱动的骨架2.注册和注销设备文件任何一个Linux驱动都需要有一个设备文件,否则应
- 【linux API分析】module_init
拱-卒
linuxapilinux
linux版本:4.19module_init()与module_exit()用于驱动的加载,分别是驱动的入口与退出函数module_init():内核启动时或动态插入模块时调用module_exit():驱动移除时调用本篇文章介绍module_init()module_init()module_init()是驱动的入口函数,该函数定义在include\linux\module.h文件/***mo
- Linux UWB Stack实现——MCPS调度接口(API)
萝卜D大哥
LinuxUWBStacklinux智能硬件物联网
在上一篇文章中,介绍了MCPS调度接口涉及的相关数据结构实现MCPS调度接口(数据结构),本文继续介绍调度相关的方法的实现。1.域处理1.1域注册与注销注册/注销一个mcps802154_region,分别在模块加载(module_init)和模块卸载(module_exit)时调用。intmcps802154_region_register(structmcps802154_region_ops
- 内核模块调试常用命令整理
gdut_llkkyy
Linux驱动学习记录linuxbashubuntu驱动开发内核模块
一、模块加载1.1最简单的一个驱动staticint__initmy_driver_init(void){printk("initmy_driver\n");return0;}staticvoid__exitmy_driver_exit(void){printk("exitmy_driver\n");}module_init(my_driver_init);module_exit(my_drive
- 驱动框架函数详解
张顺(Strange_Head)
全志Arm-Linuxarm开发linux
文章的框架基于上篇开讲https://blog.csdn.net/qq_52749711/article/details/132409329都差不多,这里的名字被改变,万变不离其宗文章目录文章的框架基于上篇开讲module_init入口函数module_exit退出函数register_chrdevmy_chardev_open(open函数)write函数class_createdevice_c
- module_init 底层实现原理
晨少爱学习
驱动linuxmodule_initmodule
module_init底层原理module_init其实是一个宏,它的作用是:告诉内核,该驱动程序的入口函数地址实际上驱动的加载分为两种:静态加载、动态加载静态加载就是把驱动程序直接编译到内核里,系统启动后可以直接调用。静态加载的缺点是调试起来比较麻烦,每次修改一个地方都要重新编译下载内核,效率较低。动态加载利用了Linux的module特性,可以在系统启动后用insmod命令把驱动程序(.ko文
- Linux Kernel module_init执行过程
Megahertz66
linuxnetworkinglinuxkernel
module_init过程总的来说这个东西经过了一些列的定义,把函数放到了指定的段中。具体可以往下看,其中调用注册函数的步骤可以参考我的另一篇sock_init链接。#definemodule_init(x)__initcall(x);#define__initcall(fn)device_initcall(fn)#definedevice_initcall(fn)__define_initcal
- Linux driver 基础之 hello world
唯见月寒日暖
Linuxdriver基础内核linux
本系列以实用及累积基础为目标,不必要不会深入代码文章目录前言一、内核模块从哪里开始?二、helloworld实例总结前言额,这个内容应该已经烂大街了,不过我还是得写一份自己的,嘻嘻嘻,后续会有新的内容的。此文内核版本:4.4.143一、内核模块从哪里开始?module_init();驱动模块都是从这个宏开始的,向宏里传入一个staticint__init类型的函数作为该模块的入口,内核在启动时就会
- Linux内核基础 — initcall机制
ʚ兔子的先森ɞ
Linuxlinux驱动开发linuxinitcall
Linux内核基础—initcall机制1.initcall的由来2.initcall源码2.1静态加载,`#ifndefMODULE`__define_initcall对应的段:`.initcall`链接文件如何被调用例子2.2动态加载,`#else`module_initinsmodSYSCALL_DEFINE31.initcall的由来 写过Linux驱动的人都知道module_init宏
- ip_vs 原理解析 (三)调度器
junjie xu
linuxipvs网络linux
文章目录调度器注册调度器绑定svcip_vs_schedule结构体PE调度器ipvs的调度器(scheduler)有很多种,这里不详细介绍各个调度器的算法,主要关注于ipvs流程中的调度器注册和使用。ipvs的调度器有rr(轮询),wrr(加权轮询),lc(最小链接),sh(源地址散列),sed(最短预期延时)等等注册每个调度器都是通过module_init()进行初始化rr调度器statics
- 嵌入式Linux驱动开发——常见框架梳理
门牙会稍息
Linuxlinux驱动开发运维笔记arm开发
前言本文主要介绍了Linux驱动开发中一些常用的驱动框架,platform、input、iic、spi等,硬件平台使用的是正点原子的imx6ull开发板。一:Pinctrl子系统、Gpio子系统不管什么框架最后都是要追溯到配置IO的电气属性和复用功能如果要使用外部中断,设备树节点中还需添加相关信息,什么边沿触发二:最简单字符驱动框架(不包含什么总线)1:module_init和module_exi
- linux flash驱动设计思想总结
u011624475
LINUX
问题1:linux内核中的subsys_initcall是干什么的?在编译某驱动为内置代码时,subsys_initcall与module_init仅仅是__define_initcall的第二个参数不同而已,前者使用4,后者使用6,因此归纳出仅仅是谁先被执行的差异,subsys_initcall比module_init先执行。问题2:EXPORT_SYMBOL是干什么的?EXPORT_SYMBO
- 入职Linux驱动工程师后,我才知道的真相......
嵌入式Linux充电站
程序人生linux驱动开发
大家好,我是Vincent。做Linux驱动工程师也有一段时间了,今天分享一下我曾经入职才知道的一些事情,算是一个菜鸟的经历吧。设备树起初学习Linux驱动,是从最简单的一个.c文件开始。在.c中实现module_init和module_exit这两个函数,然后在module_init的函数里加个printk,输出个helloworld。把.c编译成.ko,然后insmod加载驱动,看到有打印,就
- 入职Linux驱动工程师后,我才知道的真相…
ST小智
linux运维服务器
大家好,我是ST。做Linux驱动工程师也有一段时间了,今天分享一下我曾经入职才知道的一些事情,算是一个菜鸟的经历吧!设备树起初学习Linux驱动,是从最简单的一个.c文件开始。在.c中实现module_init和module_exit这两个函数,然后在module_init的函数里加个printk,输出个helloworld。把.c编译成.ko,然后insmod加载驱动,看到有打印,就算成功了。
- 【Linux驱动】字符设备驱动相关宏 / 函数介绍(module_init、register_chrdev)
仲夏夜之梦~
嵌入式linux驱动开发运维
驱动运行有两种方式:方式一:直接编译到内核,Linux内核启动时自动运行驱动程序方式二:编译成模块,使用insmod命令加载驱动模块我们在调试的时候,采用第二种方式是最合适的,每次修改驱动只需要编译一下驱动代码,然后使用insmod命令加载驱动模块(.ko文件),不需要编译整个Linux代码。下面以第二种方式为例,来了解一下编写字符驱动模块需要用到哪些宏或者函数。目录一、驱动模块的加载/卸载——m
- linux驱动学习1
大文梅
linuxlinux
内核模块加载/卸载使用insmod命令加载使用rmmod命令卸载内核模块入口/出口module_init():加载模块式该函数自动执行,进行初始化操作module_exit():卸载模块时函数自动执行,进行清理操作内核模块信息声明MODULE_LICENSE():表示模块代码接受的软件许可协议,Linux内核遵循GPLV2开源协议,内核模块与linux内核保持一致即可。MODULE_AUTHOR(
- 虚拟字符设备驱动开发步骤
行稳方能走远
正点IMX6ULL驱动开发驱动开发linux运维
目录前言字符设备驱动简介内核驱动操作函数集合(file_operations结构体)字符设备驱动开发步骤.ko驱动模块的加载和卸载(module_init驱动入口、insmod驱动加载)字符设备注册与注销到内核register_chrdev(设备号、设备名)--很少用了实现设备的具体操作函数添加LICENSE和作者信息创建应用层设备节点文件(mknod应用程序通过设备节点操作具体设备)Linux设
- 嵌入式linux驱动详解,详解嵌入式Linux设备驱动篇module_init
玖玖七零
嵌入式linux驱动详解
描述一直以来写linux驱动,都是按照固定格式,定义一个初始化和退出函数,书上告诉我这两个函数会被调用,至于为什么会被调用,在哪调用,一直不清楚。偶然的一个机会,看到blob里面的代码,里面有一个初始化函数列表。按照一般的编程想法,各部分的初始化函数会在一个固定的函数里调用比如:voidinit(void){init_a();init_b();}如果再加入一个初始化函数呢,那么再init_b()后
- C/C++Win32编程基础详解视频下载
择善Zach
编程C++Win32
课题视频:C/C++Win32编程基础详解
视频知识:win32窗口的创建
windows事件机制
主讲:择善Uncle老师
学习交流群:386620625
验证码:625
--
- Guava Cache使用笔记
bylijinnan
javaguavacache
1.Guava Cache的get/getIfPresent方法当参数为null时会抛空指针异常
我刚开始使用时还以为Guava Cache跟HashMap一样,get(null)返回null。
实际上Guava整体设计思想就是拒绝null的,很多地方都会执行com.google.common.base.Preconditions.checkNotNull的检查。
2.Guava
- 解决ora-01652无法通过128(在temp表空间中)
0624chenhong
oracle
解决ora-01652无法通过128(在temp表空间中)扩展temp段的过程
一个sql语句后,大约花了10分钟,好不容易有一个结果,但是报了一个ora-01652错误,查阅了oracle的错误代码说明:意思是指temp表空间无法自动扩展temp段。这种问题一般有两种原因:一是临时表空间空间太小,二是不能自动扩展。
分析过程:
既然是temp表空间有问题,那当
- Struct在jsp标签
不懂事的小屁孩
struct
非UI标签介绍:
控制类标签:
1:程序流程控制标签 if elseif else
<s:if test="isUsed">
<span class="label label-success">True</span>
</
- 按对象属性排序
换个号韩国红果果
JavaScript对象排序
利用JavaScript进行对象排序,根据用户的年龄排序展示
<script>
var bob={
name;bob,
age:30
}
var peter={
name;peter,
age:30
}
var amy={
name;amy,
age:24
}
var mike={
name;mike,
age:29
}
var john={
- 大数据分析让个性化的客户体验不再遥远
蓝儿唯美
数据分析
顾客通过多种渠道制造大量数据,企业则热衷于利用这些信息来实现更为个性化的体验。
分析公司Gartner表示,高级分析会成为客户服务的关键,但是大数据分析的采用目前仅局限于不到一成的企业。 挑战在于企业还在努力适应结构化数据,疲于根据自身的客户关系管理(CRM)系统部署有效的分析框架,以及集成不同的内外部信息源。
然而,面对顾客通过数字技术参与而产生的快速变化的信息,企业需要及时作出反应。要想实
- java笔记4
a-john
java
操作符
1,使用java操作符
操作符接受一个或多个参数,并生成一个新值。参数的形式与普通的方法调用不用,但是效果是相同的。加号和一元的正号(+)、减号和一元的负号(-)、乘号(*)、除号(/)以及赋值号(=)的用法与其他编程语言类似。
操作符作用于操作数,生成一个新值。另外,有些操作符可能会改变操作数自身的
- 从裸机编程到嵌入式Linux编程思想的转变------分而治之:驱动和应用程序
aijuans
嵌入式学习
笔者学习嵌入式Linux也有一段时间了,很奇怪的是很多书讲驱动编程方面的知识,也有很多书将ARM9方面的知识,但是从以前51形式的(对寄存器直接操作,初始化芯片的功能模块)编程方法,和思维模式,变换为基于Linux操作系统编程,讲这个思想转变的书几乎没有,让初学者走了很多弯路,撞了很多难墙。
笔者因此写上自己的学习心得,希望能给和我一样转变
- 在springmvc中解决FastJson循环引用的问题
asialee
循环引用fastjson
我们先来看一个例子:
package com.elong.bms;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
import co
- ArrayAdapter和SimpleAdapter技术总结
百合不是茶
androidSimpleAdapterArrayAdapter高级组件基础
ArrayAdapter比较简单,但它只能用于显示文字。而SimpleAdapter则有很强的扩展性,可以自定义出各种效果
ArrayAdapter;的数据可以是数组或者是队列
// 获得下拉框对象
AutoCompleteTextView textview = (AutoCompleteTextView) this
- 九封信
bijian1013
人生励志
有时候,莫名的心情不好,不想和任何人说话,只想一个人静静的发呆。有时候,想一个人躲起来脆弱,不愿别人看到自己的伤口。有时候,走过熟悉的街角,看到熟悉的背影,突然想起一个人的脸。有时候,发现自己一夜之间就长大了。 2014,写给人
- Linux下安装MySQL Web 管理工具phpMyAdmin
sunjing
PHPInstallphpMyAdmin
PHP http://php.net/
phpMyAdmin http://www.phpmyadmin.net
Error compiling PHP on CentOS x64
一、安装Apache
请参阅http://billben.iteye.com/admin/blogs/1985244
二、安装依赖包
sudo yum install gd
- 分布式系统理论
bit1129
分布式
FLP
One famous theory in distributed computing, known as FLP after the authors Fischer, Lynch, and Patterson, proved that in a distributed system with asynchronous communication and process crashes,
- ssh2整合(spring+struts2+hibernate)-附源码
白糖_
eclipsespringHibernatemysql项目管理
最近抽空又整理了一套ssh2框架,主要使用的技术如下:
spring做容器,管理了三层(dao,service,actioin)的对象
struts2实现与页面交互(MVC),自己做了一个异常拦截器,能拦截Action层抛出的异常
hibernate与数据库交互
BoneCp数据库连接池,据说比其它数据库连接池快20倍,仅仅是据说
MySql数据库
项目用eclipse
- treetable bug记录
braveCS
table
// 插入子节点删除再插入时不能正常显示。修改:
//不知改后有没有错,先做个备忘
Tree.prototype.removeNode = function(node) {
// Recursively remove all descendants of +node+
this.unloadBranch(node);
// Remove
- 编程之美-电话号码对应英语单词
bylijinnan
java算法编程之美
import java.util.Arrays;
public class NumberToWord {
/**
* 编程之美 电话号码对应英语单词
* 题目:
* 手机上的拨号盘,每个数字都对应一些字母,比如2对应ABC,3对应DEF.........,8对应TUV,9对应WXYZ,
* 要求对一段数字,输出其代表的所有可能的字母组合
- jquery ajax读书笔记
chengxuyuancsdn
jQuery ajax
1、jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()
- JWFD工作流拓扑结构解析伪码描述算法
comsci
数据结构算法工作活动J#
对工作流拓扑结构解析感兴趣的朋友可以下载附件,或者下载JWFD的全部代码进行分析
/* 流程图拓扑结构解析伪码描述算法
public java.util.ArrayList DFS(String graphid, String stepid, int j)
- oracle I/O 从属进程
daizj
oracle
I/O 从属进程
I/O从属进程用于为不支持异步I/O的系统或设备模拟异步I/O.例如,磁带设备(相当慢)就不支持异步I/O.通过使用I/O 从属进程,可以让磁带机模仿通常只为磁盘驱动器提供的功能。就好像支持真正的异步I/O 一样,写设备的进程(调用者)会收集大量数据,并交由写入器写出。数据成功地写出时,写入器(此时写入器是I/O 从属进程,而不是操作系统)会通知原来的调用者,调用者则会
- 高级排序:希尔排序
dieslrae
希尔排序
public void shellSort(int[] array){
int limit = 1;
int temp;
int index;
while(limit <= array.length/3){
limit = limit * 3 + 1;
- 初二下学期难记忆单词
dcj3sjt126com
englishword
kitchen 厨房
cupboard 厨柜
salt 盐
sugar 糖
oil 油
fork 叉;餐叉
spoon 匙;调羹
chopsticks 筷子
cabbage 卷心菜;洋白菜
soup 汤
Italian 意大利的
Indian 印度的
workplace 工作场所
even 甚至;更
Italy 意大利
laugh 笑
m
- Go语言使用MySQL数据库进行增删改查
dcj3sjt126com
mysql
目前Internet上流行的网站构架方式是LAMP,其中的M即MySQL, 作为数据库,MySQL以免费、开源、使用方便为优势成为了很多Web开发的后端数据库存储引擎。MySQL驱动Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持database/sql标准,而有些是采用了自己的实现接口,常用的有如下几种:
http://code.google.c...o-mysql-dri
- git命令
shuizhaosi888
git
---------------设置全局用户名:
git config --global user.name "HanShuliang" //设置用户名
git config --global user.email "
[email protected]" //设置邮箱
---------------查看环境配置
git config --li
- qemu-kvm 网络 nat模式 (四)
haoningabc
kvmqemu
qemu-ifup-NAT
#!/bin/bash
BRIDGE=virbr0
NETWORK=192.168.122.0
GATEWAY=192.168.122.1
NETMASK=255.255.255.0
DHCPRANGE=192.168.122.2,192.168.122.254
TFTPROOT=
BOOTP=
function check_bridge()
- 不要让未来的你,讨厌现在的自己
jingjing0907
生活 奋斗 工作 梦想
故事one
23岁,他大学毕业,放弃了父母安排的稳定工作,独闯京城,在家小公司混个小职位,工作还算顺手,月薪三千,混了混,混走了一年的光阴。 24岁,有了女朋友,从二环12人的集体宿舍搬到香山民居,一间平房,二人世界,爱爱爱。偶然约三朋四友,打扑克搓麻将,日子快乐似神仙; 25岁,出了几次差,调了两次岗,薪水涨了不过百,生猛狂飙的物价让现实血淋淋,无力为心爱银儿购件大牌
- 枚举类型详解
一路欢笑一路走
enum枚举详解enumsetenumMap
枚举类型详解
一.Enum详解
1.1枚举类型的介绍
JDK1.5加入了一个全新的类型的”类”—枚举类型,为此JDK1.5引入了一个新的关键字enum,我们可以这样定义一个枚举类型。
Demo:一个最简单的枚举类
public enum ColorType {
RED
- 第11章 动画效果(上)
onestopweb
动画
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- Eclipse中jsp、js文件编辑时,卡死现象解决汇总
ljf_home
eclipsejsp卡死js卡死
使用Eclipse编辑jsp、js文件时,经常出现卡死现象,在网上百度了N次,经过N次优化调整后,卡死现象逐步好转,具体那个方法起到作用,不太好讲。将所有用过的方法罗列如下:
1、取消验证
windows–>perferences–>validation
把 除了manual 下面的全部点掉,build下只留 classpath dependency Valida
- MySQL编程中的6个重要的实用技巧
tomcat_oracle
mysql
每一行命令都是用分号(;)作为结束
对于MySQL,第一件你必须牢记的是它的每一行命令都是用分号(;)作为结束的,但当一行MySQL被插入在PHP代码中时,最好把后面的分号省略掉,例如:
mysql_query("INSERT INTO tablename(first_name,last_name)VALUES('$first_name',$last_name')");
- zoj 3820 Building Fire Stations(二分+bfs)
阿尔萨斯
Build
题目链接:zoj 3820 Building Fire Stations
题目大意:给定一棵树,选取两个建立加油站,问说所有点距离加油站距离的最大值的最小值是多少,并且任意输出一种建立加油站的方式。
解题思路:二分距离判断,判断函数的复杂度是o(n),这样的复杂度应该是o(nlogn),即使常数系数偏大,但是居然跑了4.5s,也是醉了。 判断函数里面做了3次bfs,但是每次bfs节点最多