dest

字符串操作函数

匆匆过客 提交于 2020-02-04 00:09:26
1:查找函数 char *strchr(const char *str, int c)在参数str所指向的字符串中搜索,第一次出现字符C(一个无符号字符) 的位置。 成功:返回在字符串str中第一次出现字符C的位置 失败:返回NULL char *strstr(const char *haystack,const char *needle)在字符串haystack中查找第一次出现字符串needle 的位置。不包含终止符’\0’ 2:复制函数 char *strcpy(char *dest, const char *src)把src所指向的字符串复制到dest dest不够大会造成溢出 返回一个指向最终的目标字符串dest的指针 strncpy(p,p1,n) 3:链接函数 char *strcat(char *dest,const char *src)把src所指向的字符串追加到dest,所指向的字符串的结尾 返回dest的指针 strcat(p,p1,n); 4:比较函数 int strcmp(const char *strl, const char *str2)把str1所指向的字符串和str2所指的字符串进行比较 返回值=0 str1等于str2 strcmp(p,p1,n); 来源: CSDN 作者: weixin_43656926 链接: https://blog

devops工具-Ansible基础

时光总嘲笑我的痴心妄想 提交于 2020-01-29 18:36:10
一、Ansible介绍 简介 Ansible使用Python语言开发,是一个配置管理型工具,与之类似的工具还有Puppet、SaltStack、chef等,默认通过SSH协议进行远程命令执行或下发配置,无需部署任何客户端代理软件,可同时支持多台主机进行管理,Ansible是基于模块工作的,本身没有批量部署的能力,真正具有批量部署的是Ansible所运行的模块,能够实现批量运行命令、部署程序、配置系统等功能。目前已经Ansible已经被红帽官方收购,并基于实现了企业级产品,如tower。 Ansible上手快,简单易学,深受广大运维人员青睐,是devops工程师必备技能之一。 特点 部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作; 默认使用SSH协议对设备进行管理; 丰富的模块支持,可实现日常绝大部分操作; 配置简单、功能强大、扩展性强; 支持API及自定义插件或模块,可通过Python轻松扩展; 通过Playbooks来定制强大的配置、状态管理; 轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可; 架构 1. Ansible:核心应用程序 2. Host inventory: 主机清单,用来定义Ansible管理的主机,默认是在Ansible配置文件中定义被管理主机,同时也支持自定义动态主机清单。 3. Comecton pugins

CTF学习-eric靶机练习:使用git tools获取敏感目录,提权

假装没事ソ 提交于 2020-01-28 18:59:45
Kali渗透测试-靶场练习eric 实验: Kali的IP:192.168.1.11(不同的机器配置不同) 靶机IP: 192.168.1.6(动态ip) 操作步骤 靶机下载: https://www.vulnhub.com/entry/sp-eric%2C274 下载的7z压缩包,解压后为eric.ova,还原靶机,这里我开始使用vmware还原,失败,我又安装的Virtual Box,还原成功; 打开Kali,执行 查看局域网内主机状态(192.168.1.11为我的攻击虚拟机Kali的IP): nmap -sP 192.168.1.11/24 找到靶机IP:192.168.1.6 4. 查看端口: nmap -A 192.168.1.6 开放了22和80端口,查看80端口对应的网站 5. 网站目录枚举: dirb http://192.168.1.6:80/ 6. 发现有/.git,/admin.php,/upload/等敏感目录, admin有登录输入框,没发现注入点; /upload没有访问权限; 尝试利用.git泄露敏感密码这个漏洞 这里使用GitTools工具下载这个网站对应的源码 GitTools下载 7. 下载网站源码 切换到下载的目录下的Dumper文件夹,输入以下命令,把源码下载到当前目录的dest目录下 ./gitdumper.sh http://192

babel 使用npm安装使用

穿精又带淫゛_ 提交于 2020-01-22 13:08:11
虽然现在es6已经很完善了,但也仅仅限于一些高级浏览器 如:谷歌 ,火狐,ie11等等 babel 可以实现高版本js往低版本转换 使用方式 有俩种 1.使用cdn方式 引入 <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script> 使用的时候 <script type="text/babel"> </script > 加上 type="text/babel" 这句话 2.使用npm安装使用(前提的本地电脑上有 node.js最新版环境) 2.1.桌面上建立一个空的文件夹 npm init 初始化项目文件 2.2.安装所需要的依赖 npm i @babel/core @babel/cli @babel/preset-env babel/core 转换代码 babel/cli 执行的命令环境 babel/preset-env 配置环境 2.3.在packjson 文件夹中书写配置 (提前把需要转换的代码放到src目录下 当然这个目录可以自定义的) "build":"babel src -d dest" //src 要转换的 代码文件存放目录 -d dest 输出的文件目录 2.4.在当前目录下 新建立一个配置文件 .babelrc 别忘了前面小点 不配置这个 默认是不会转换低版本 他根据环境判断

springboot中文件上传下载用MultipartFile

时光怂恿深爱的人放手 提交于 2020-01-20 18:19:51
代码 package com.springbootshiro.sprshiro.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; import java

pgm转png

て烟熏妆下的殇ゞ 提交于 2020-01-17 12:34:58
研究pgm转png比较消耗内存的问题 2020.01.14 通过Java的ImageIO生成png与jpg图片,5000*5000的pgm需要消耗300M内存以上 2020.01.15 通过jconsole, mat等工具,定位问题是由于在内存中生成整个png所有需要的数据,导致的问题 2020.01.16 研究方向为根据png的实际文件结构,自己写代码生成png图片,基于昨天的研究:png支持灰度图 使用jdk12测试: 将5000*5000的pgm转换为png消耗12M左右 将10000*10000的pgm转换为png消耗14M左右 由于需要运行java类库,实际使用估计在2M左右 如果连续转换,由于java的垃圾回收机制,可能会由于一些垃圾导致内存占用变大 可以通过设置垃圾回收解决 代码实现说明 通过调试ImageIO生成BufferedImage.TYPE_BYTE_GRAY的PNG图片的代码,研究生成PNG的过程 只保留必须的png文件结构:magic、IHDR、IDAT、IEND 具体实现,拷贝了com.sun.imageio.plugins.png的实现 执行pgm转png java -jar pgm-to-png.jar pgm=5000-5000.pgm 参数说明: pgm: 源pgm文件地址,若只有文件名,则为运行时目录 png: 转换后的png文件地址,若为空

【C语言】字符串处理

落爺英雄遲暮 提交于 2020-01-17 07:44:08
文章目录 1、memchr 2、memcmp 3、memcpy 4、memmove 5、memset 6、strcat 7、strncat 8、strchr 9、strcmp 10、strncmp 11、strcoll 12、strcpy 13、strncpy 14、strcspn 15、strerror 16、strlen 17、strpbrk 18、strrchr 19、strspn 20、strstr 21、strtok 22、strxfrm 1、memchr void * memchr ( const void * str , int c , size_t n ) 在参数 str 所指向的字符串的前 n 个字节中搜索第一次出现字符 c(一个无符号字符)的位置。 2、memcmp int memcmp ( const void * str1 , const void * str2 , size_t n ) 3、memcpy void * memcpy ( void * dest , const void * src , size_t n ) 4、memmove void * memmove ( void * dest , const void * src , size_t n ) 另一个用于从 src 复制 n 个字符到 dest 的函数。 从 src 复制 n 个字符到

linux基础命令

老子叫甜甜 提交于 2020-01-16 07:27:16
man COMMAND: 手册页: /usr/share/man man1: 用户命令 man2: 系统调用 man3: C库的调用 man4: 设备及特殊文件 man5: 配置文件格式 man6: 游戏 man7: 杂项 man8: 管理类的命令 man命令的配置文件: /etc/man.config man命令的操作方法 向文件尾部翻屏: space,^V,^F,^f 向文件首部翻屏: b,^B 向文件尾部翻半屏: d,^D 向文件首部翻半屏: u, ^U 向文件尾部翻一行:ENTER, ^N, e, ^E, j, ^J 向文件首部翻一行:y, ^Y, ^P, k, ^K 退出: q 跳转至第#行: # 回到文件首部: 1G 翻至文件尾部: G 文本搜索: /KEYWORD: 以KEYWORK指定的字符串为关键字,从当前位置向文件尾部搜索,不区分字符大小写 n: 下一个 N:上一个 ? KEYWORK: 以KEYWORD指定的字符串为关键字,从当前位置向文件首部搜索,不区分字符大小写 n: 下一个 N: 上一个 date命令 date [OPTIONS] +[FORMAT] FORMAT: 格式符号 %D,%F,%T等 date [MMDDhhmm[[CC]YY].ss: 设置时间 MM: 月份 DD: 几号 hh: 小时 mm: 分钟 YY: 两位年份 CCYY: 四位年份

Linux字符串函数集

戏子无情 提交于 2020-01-11 22:31:51
//Linux字符串函数集: 头文件:string.h   函数名: strstr   函数原型: extern char *strstr( char *str1, char *str2);   功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。   返回值:返回该位置的指针,如找不到,返回空指针。 包含文件:string.h   函数名: strstr   函数原型:extern char *strstr(char *str1, char *str2);   功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。   返回值:返回该位置的指针,如找不到,返回空指针。 原型: extern char *strchr( const char *s, char c);    const char *strchr( const char* _Str, int _Val)    char *strchr( char* _Str, int _Ch)   头文件:#include <string.h>   功能:查找字符串s中首次出现字符c的位置   说明:返回首次出现c的位置的指针,如果s中不存在c则返回NULL。   返回值:Returns the address of the first occurrence of

strcpy和strncpy用法和区别

旧时模样 提交于 2020-01-11 22:16:01
strcpy和strncpy用法和区别 1. strcpy函数:顾名思义字符串复制函数:原型:extern char *strcpy(char *dest,char *src); 功能:把从src地址开始且含有NULL结束符的字符串赋值到以dest开始的地址空间,返回dest(地址中存储的为复制后的新值)。要求:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。   一般函数原型实现方式:   char * strcpy(char * strDest,const char * strSrc)   {   char * strDestCopy=strDest; //[3]   if ((strDest==NULL)||(strSrc==NULL)) //[1]   throw "Invalid argument(s)"; //[2]   while ((*strDest++=*strSrc++)!='\0'); //[4]   return strDestCopy;   }   该函数的参数是字符指针,也就是可以是字符串变量和字符数组,因为它们的变量名代表首字符地址。字符串默认有一个null结束符,字符数组没有。所以此处需要注意:因为src要求有null结束符,所以字符数组的长度必须大于等于src包含null结束符的总长度。例如,char* src