
技术
元俊up
直击重点
展开
-
C语言free如何知道要free多大的空间(转)
在C语言中,当向一个函数传递指针的时候,它的长度信息往往会被截断(如果是数组名),传入函数的只是一个指针,而无法标示数组的长度,在函数中我们也无法获取它的长度信息,除非显示的传递一个长度参数。但是使用free函数的过程中,我们只是向free中传递了一个指针,并没有标示它的大小,那free是如何知道将要被free掉的内存的大小呢?下面将详细解答这一问题。malloc函数的实现是以块分配内存,在被分...转载 2019-06-20 01:33:21 · 1384 阅读 · 0 评论 -
docker hub 下载centos配置ssh远程登陆
docker hub 下载centos配置ssh远程登陆特别说明本文用的是linux操作系统,所有环境均为linux环境。本文是直接进入容器安装配置ssh远程登陆,然后通过配置好的容器生成新的镜像。不是使用Dockerfile的方式,请知晓。先决条件物理机安装Docker物理机可以访问互联网注册docker hub账号下载镜像从docker hub上下载centos镜像。doc...转载 2019-06-04 18:14:33 · 202 阅读 · 0 评论 -
C++ 学习
C++ 对象demo.cpp #include <stdio.h> //通过class关键字类定义类 class Student{ public: //类包含的变量 char *name; int age; float score; //类包含的函数 voi...原创 2019-06-16 18:24:41 · 422 阅读 · 0 评论 -
x86寄存器
x86 RegistersThe main tools to write programs in x86 assembly are the processor registers. The registers are like variables built in the processor. Using registers instead of memory to store values m...转载 2019-06-16 18:26:38 · 381 阅读 · 0 评论 -
函数栈EIP、EBP、ESP寄存器的作用(转)
这一篇文章咱们就来重新认识一下EIP、EBP、ESP这三个寄存器,寄存器又好几个,但是为什么我们要单独看这几个呢?因为在很多情况下我们在调试的时候最注意的就是这三个寄存器,其实这几个寄存器都是为“栈”而生,下面将结合图片分别谈谈这几个寄存器。0x01 栈的结构“栈"想必大家都很熟悉了,我们再重复一遍他的几个重要性质和概念。1、先进后出。2、在内存中表现为从高地址往低地址增长。3、栈顶:栈...转载 2019-06-18 01:08:05 · 11242 阅读 · 4 评论 -
x86汇编
Linux 汇编语言开发指南movl %eax, %edx # edx = eax 寄存器寻址movl $0x123, %edx # edx = 0x123; 立即数寻址movl 0x123, %edx # edx = *(int32_t*)0x123 直接寻址movl (%ebx), %edx # edx = *(i...原创 2019-06-18 01:35:22 · 332 阅读 · 0 评论 -
gdb代码调试
基本格式:gcc [options] file1 file2... //若不加入参数,则按默认参数依次执行编译、汇编和链接操作,生成的可执行文件名为 a.out常用参数:-E //只执行预处理操作 -S //只执行到编译操作完成,不进行汇编操作,生成的是汇编文件(.s 或 .asm),内容为汇编语言 -c ...转载 2019-06-18 19:29:51 · 350 阅读 · 0 评论 -
php设计模式
<?php/*** * 抽象工厂 * 意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 * 主要解决:主要解决接口选择的问题。 * 何时使用:系统的产品有多于一个的产品族,而系统只消费其中某一族的产品。 * 如何解决:在一个产品族里面,定义多个产品。 * 关键代码:在一个工厂里聚合多个同类产品。 * 应用实例:工作了,为了参加一些聚会,肯定有两套...原创 2019-07-05 23:55:57 · 143 阅读 · 0 评论 -
依赖注入,控制反转
深入理解依赖注入容器依赖:一个类的实现依赖于另一个类。简单的来说,依赖注入就是不在A类中进行实例化B,而是在A类的外面就把B类实例化好,然后通过参数的方式传入A类,再在A类中赋值给A类里的自定义变量依赖注入的好处在于不用重复修改代码,比如你的B类过时了,需要换成C类,但是方法名不变的情况下,如果不用依赖注入,你得去A类里找到newB 类的地方,改成new C类。而依赖注入则只需要在用的时候把...原创 2019-07-06 22:28:03 · 136 阅读 · 0 评论 -
简述 PHP 的标准输入与输出
文档在此:http://php.net/manual/zh/wrappers.php.php简述 PHP 的标准输入与输出转载 2019-07-12 10:29:14 · 278 阅读 · 0 评论 -
go连接mysql
shell终端安装 go-mysql包:go get -u github.com/go-sql-driver/mysql以下代码可以在我的阿里云正常执行:package mainimport "database/sql"import _ "github.com/go-sql-driver/mysql"import ( "fmt" "strings")//数据...原创 2019-07-17 11:10:22 · 1849 阅读 · 0 评论 -
php-fpm
正向代理:代理的对象是客户端, 如VPN, 用户可感知反向代理:代理的对象是服务端,如访问PHP时nginx做代理,10086总台任务分发。 用户不可感知cgi的历史早期的webserver只处理html等静态文件,但是随着技术的发展,出现了像php等动态语言。webserver处理不了了,怎么办呢?那就交给php解释器来处理吧!交给php解释器处理很好,但是,php解释器如何与webs...原创 2019-07-30 11:59:44 · 450 阅读 · 0 评论 -
go实现http服务端
package mainimport (“fmt”“log”“net/http”“strings”)func sayhelloName(w http.ResponseWriter, r *http.Request) {r.ParseForm() //解析参数,默认是不会解析的fmt.Println(r.Form) //这些信息是输出到服务器端的打印信息fmt.Pri...原创 2019-07-26 10:03:21 · 533 阅读 · 0 评论 -
linux终端配色方案
参考 https://blog.youkuaiyun.com/amoscykl/article/details/80616873转载 2019-08-26 14:34:05 · 515 阅读 · 0 评论 -
栈的概念以及栈溢出
栈的概念以及栈溢出对每个程序来说,栈能使用的内存是有限的,一般是 1M~8M,这在编译时就已经决定了,程序运行期间不能再改变。如果程序使用的栈内存超出最大值,就会发生栈溢出(Stack Overflow)错误。一个程序可以包含多个线程,每个线程都有自己的栈,严格来说,栈的最大值是针对线程来说的,而不是针对程序。栈内存的大小和编译器有关,编译器会为栈内存指定一个最大值,在 VC/VS 下,默认...原创 2019-06-19 21:53:53 · 942 阅读 · 0 评论 -
GCC内嵌汇编笔记(转)
__asm__表示后面的代码为内嵌汇编,asm是__asm__的别名。__volatile__表示编译器不要优化代码,后面的指令保留原样,volatile是它的别名。括号里面是汇编指令。使用内嵌汇编,要先编写汇编指令模板,然后将C语言表达式与指令的操作数相关联,并告诉GCC对这些操作有哪些限制条件。示例: __asm__ __violate__ ("movl %1,%0" : "=r" ...转载 2019-06-19 21:51:43 · 172 阅读 · 0 评论 -
docker 网络及docker-LNMP搭建
启动一个临时docker实例,进入docker可以查看php.ini的配置文件 在/usr/local/etc/php/目录.使用 docker cp tmpphp:/usr/local/etc/php/php.ini-development ./ 将php.ini配置文件copy下来./www目录是nginx重应该指定的路径.容器互联:1、创建容器 test1docker run ...原创 2019-06-03 18:04:54 · 270 阅读 · 0 评论 -
php自动加载
function __autoload() 尝试加载未定义的类;test.php <?php function __autoload($name) { require($name.'.php'); echo 'CLASS '.$name.' NOT EXIST!'; } $a = new A();A.php <?php class A { ...原创 2019-04-12 09:25:06 · 115 阅读 · 0 评论 -
PHP实现设计模式
1.创建型抽象工厂模式建造者模式工厂方法模式多例模式对象池模式原型模式简单工厂模式单例模式静态工厂模式2.结构型3.行为型原创 2019-04-12 13:33:42 · 153 阅读 · 0 评论 -
Http
1.客户端封装HTTP数据,2.调用操作系统工具发送HTTP数据「每种语言也有自己的请求方法telnet命令, postman,php的 cURL等。linux的 wget, curl 可以实现 post,get,del 等。」客户端请求消息客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部...原创 2019-04-16 14:41:44 · 197 阅读 · 0 评论 -
mac上docker安装nginx,php,mysql
在mac上安装docker-nginx docker pull nginx docker run -p 80:80 --name mynginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:rw -v $PWD/logs:/wwwlogs:rw -d nginx rw 读写ro 只读会报...原创 2019-04-17 00:48:04 · 633 阅读 · 0 评论 -
YAML 语法
参考:YAML 语言教程yaml官网PHP与YAML使用实例原创 2019-04-22 16:36:16 · 126 阅读 · 0 评论 -
composer相关
composer官网 :https://packagist.org/ 【安装,使用,依赖资源,资源依赖版本要求等】curl -sS https://getcomposer.org/installer | php打开https://getcomposer.org/installer可以查看源码PECL :: The PHP Extension Community Library...原创 2019-04-23 10:37:15 · 133 阅读 · 0 评论 -
PHP的phar相关
创建PHAR文件:phar官方文档查看phar.readonly的配置。需要修改php.ini文件设置 phar.readonly=0否则:php -i | grep phar 编辑index.php<?php echo "This is a phar test ."; echo PHP_EOL;createPhar.php<?php$srcRoot = ...原创 2019-04-23 11:40:05 · 501 阅读 · 0 评论 -
Docker
安装dockeryum remove docker docker-common docker-selinux docker-engineyum install -y yum-utils device-mapper-persistent lvm2 #安装yum-config-manager命令yum-config-manager --add-repo https://download.d...原创 2019-04-27 21:31:05 · 173 阅读 · 0 评论 -
PHP实现 一位数组转化为多维数组
PHP实现 一位数组转化为多维数组:<?php$arr = [ ['a', 'b', 'c', 'd', 'e',], ['a', 'b', 'b', 'd', 'e',], ['c', 't', 'v', 'd', 'e',],];function treeMap($arr){ $dtree = []; foreach ($arr as...原创 2019-05-20 11:02:23 · 830 阅读 · 0 评论 -
语言变量类型
phpPHP支持9种原始数据类型四种标量类型:boolean(布尔型), integer(整型), float(浮点型,也称double), string(字符串)三种复合类型:array(数组), object(对象), callable(可调用)两种特殊类型: resource (资源), NULL (无类型)go在go编程语言中,数据类型用于声明函数和变量数据类型的出现是为了...原创 2019-05-12 17:44:29 · 380 阅读 · 0 评论 -
printf格式输出符
%d, %s, %i等是比较常用的。Printf(xxxxx):产生格式化输出的函数printf(constchar *format,[argument]);format 参数输出的格式,定义格式为: %[flags][width][.perc] [F|N|h|l]type([]中的内容表示是可根据实际需要选择的,实际使用时不用加[],type即是你看到的%p对应的p)规定数据输出方...原创 2019-05-22 22:06:08 · 315 阅读 · 0 评论 -
cookie和session
当代码启用session,<?php session_start(); //setcookie('cookie_test_name', 'yuanjunq',time()+5*60); //$_SESSION['name'] = 'NAME'; //$_SESSION['age'] = 20; echo "<pre>"; var_...原创 2019-06-12 21:26:41 · 158 阅读 · 0 评论 -
Linux环境下的一个汇编程序
vim hello.asmsection .text ; The _start symbol must be declared for the linker (ld) global _start_start: ; Prepare arguments for the sys_write system call: ; - eax: system call ...原创 2019-06-01 12:41:34 · 352 阅读 · 0 评论 -
C项目构建入门
多文件编译max.cint max(int a, int b){ if(a>b) { return a; } return b;}hello.c#include<stdio.h>int main(){ int a1 = 33; int a2 = 21; int maxnum = max(a1,a2...原创 2019-09-02 23:00:54 · 760 阅读 · 0 评论