- 博客(20)
- 资源 (11)
- 收藏
- 关注
原创 关于“给PHP源代码加密“的代码分析
/*时间:2022-1-9作者:aweii内容:关于"给PHP源代码加密"的代码分析[原创]*/网上看到一则"给PHP源代码加密"的代码,饶有兴趣研究了下(https://www.jb51.net/article/134506.htm)。代码如下: <?phpfunction RandAbc($length = "") { // 返回随机字符串 $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopq...
2022-01-09 17:23:46 386 1
原创 2021-06-21 php偏随机数实现概率抽奖的实例
偏随机数是使随机数范围偏向于权重大的范围。比如随机抽奖的概率规定如下:一等奖概率10%,二等奖概率20%,三等奖概率30%,四等奖概率40%。要达到此目的,编制抽奖程序如下://///////偏随机数实现概率抽奖$lottery=["一等奖"=>10,"二等奖"=>20,"三等奖"=>20,"四等奖"=>40];//生成权重数组function rand_weighted($numbers){ $total=0; $weight=[]; fo...
2021-06-21 18:45:05 239
原创 《PHP与MySQL程序设计(第四版)》中第73页4.2.6节分期还贷计算器数学原理分析
-----------------------------《PHP与MySQL程序设计(第四版)》中第73页4.2.6节分期还贷计算器数学原理分析。《PHP与MySQL程序设计(第四版)》中73页4.2.6节,代码清单4-1是还贷计算器函数amortizationTable,代码如下。其使用的是等额本息分期还款模型。要理解这段代码,关键是理解月还款额b的计算公式背后的数学原理。设本金a,还款月数n,月利率r,每月还款b。还款计算如下:首月利息a*r,还款后,余额a1=a(1+r)-b;次月利息a1*
2020-07-01 20:27:30 436
原创 Linux内核2.4.18创建硬链接的系统调用sys_link
1、磁盘目录项结构/* * The new version of the directory entry. Since EXT2 structures are * stored in intel byte order, and the name_len field could never be * bigger than 255 chars, it's safe to recla
2017-04-05 22:27:16 944
原创 两种文件写操作的页缓存数据刷出操作和函数调用路径分析
一、内存映射文件的写操作(MAP_SHARED模式):1、写内存时按以下流程标记页为脏:pte_mkdirty(pte),swap_out->……->try_to_swap_out时set_page_dirty(page)2、文件映射内存同步到磁盘(调用sys_msync)(1)sys_msync->msync_interval:调用filemap_sync、filemap_fdata
2017-04-04 13:06:31 522
原创 C语言标准库函数getenv的实现
C语言标准库函数getenv可获取环境参数(根据参数名称),函数声明:char* getenv(char*name);其实现如下:---------------glibc-1.09.1/sysdeps/generic/getenv.c/* Return the value of the environment variable NAME. */char *DE
2016-09-10 14:02:57 5685
原创 上楼梯问题的解法
/* 问题:有20级楼梯,每次只能上一级或两级,请问有几种上法。(《少年班》中老师问大法的一个问题,大法通过神奇的心算[Fibonacci数列]得出10946) 本问题的本质及求解斐波那契数列的第n项。常见的计算机算法有递归和线性规划法。当n较大时,用法二更好。 递推公式为:F(n)=F(n-1)+F(n-2),其中F(1)=1,F(2)=2。 2015-8-23
2015-08-23 20:52:15 1563
原创 VirtualBox虚拟机中运行Android
在PC上,运行ADB模拟器速度很慢,可以在VirtualBox中运行x86版的android虚拟机解决这个问题,然后通过虚拟机实现系统调试功能。步骤如下:1、下载android-x86,安装光盘映像网址:http://www.android-x86.org/download现成的虚拟机映像下载网址:http://dl.iplaysoft.com/files/1677.html#down
2014-01-07 20:20:17 1254
原创 Android源代码下载
以下操作在VirtualBox中的Fedora-17虚拟机上进行,工作目录为/mnt/disk2/source/android/2.2/1、 下载python脚本repo#curl"http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo"> ./repo#chmod 777 ./repo成功!标准的地址不可用:curl
2014-01-05 12:56:38 787
原创 VirtualBox虚拟机下Fedora17与windows宿主机共享文件夹的设置
VirtualBox虚拟机下Fedora17与windows宿主机共享文件夹的设置 笔者以VirtualBox虚拟机安装了Fedora17操作系统,宿主机操作系统是win2003,尝试着在两者之间共享文件夹。以下是设置步骤:1、 windows下建立一个目录N:\temp\作为共享文件夹用。Vbox界面上,选中虚拟机Fedora17后,单击右侧的共享文件夹,出现设置窗
2014-01-02 13:21:05 1343
原创 2.6.11内核CPU频率(khz)的计算
CPU频率的计算使用了两个函数init_cpu_khz()和calibrate_tsc() ----------------------------arch/i386/kernel/timers/Common.c--------------------//tsc_quotient中保存通过calibrate_tsc()计算得出(CPU单个时钟周期的微秒数)*(2^32)的值,然后
2013-03-17 11:07:32 2011
原创 无符号数(unsigned) 和带符号数(int)的循环变量 在for循环条件判断使用中的区别1例
先看一段代码:unsigned i1 ;for (i1=9;i1>=0;i1--){ printf("%u\n",i1);}由于作为无符号整型的i1始终大于等于0,所以是个死循环,如果把i1改为int类型,就不再是死循环了。那么,编译以后,汇编指令怎么分别判断无符号类型或整型变量与0的大小呢?经过以下程序调试过程中的反汇编代码得知,当i1为unsigned类型是,i1>=0是通过
2012-12-10 16:53:07 2800
原创 linux-2.0.35的打开文件系统调用sys_open分析
----sys_open:linux\fs\open.c----asmlinkage int sys_open(const char * filename,int flags,int mode){char * tmp;int fd, error;//获取打开文件描述符(进程打开文件结构指针数组的下标)fd = get_unused_fd();if (fd < 0)return fd
2012-12-08 21:58:36 1621 4
原创 linux-1.2.13内核的编译生成和引导
在linux目录下运行命令 make zimage即生成内核,过程是这样的。linux/makefile中有这一句:include arch/$(ARCH)/Makefile,指向了linux/arch/i386/makefile,其中有目标:--linux/makefile--MAKEBOOT = $(MAKE) -C arch/$(ARCH)/bootzImage: vmlin
2012-12-08 21:56:43 1235 2
原创 vsyscall page
-----------------------------------vsyscall page-------------------------------------内核中有一个永久固定映射页面(位于0xffffe000-0xffffefff),名为vsyscall页。这个区域存放了系统调用入口kernel_vsyscall的代码,以及信号处理程序的返回代码kernel_sigretu
2012-01-15 11:08:28 1966
原创 linux2.6.11的工作队列机制分析
一、概述 工作队列提供了一种通过线程同步或者异步运行内核函数的通用机制。通过completion和等待队列实现了同步运行功能(调用者等待被调用函数执行完毕),不使用completion则可实现异步运行的功能。相关的定义和代码主要在以下文件中:linux\kernel\Workqueue.clinux\include\linux\Workqueue.h二、数据结构
2011-12-01 23:24:00 1129
原创 linux kernel2.6中软中断运行线程ksoftirqd的创建
1、软中断由内核线程ksoftirqd处理,下面说一下它的创建过程。start_kernel()创建init线程,init()调用do_pre_smp_initcalls()->spawn_ksoftirqd(),spawn_ksoftirqd()分两次调用cpu_callback(),分别使用参数CPU_UP_PREPARE和CPU_ONLINE。使用CPU_UP_PREPARE调用
2011-11-12 17:02:28 2025
原创 一个计算平方根的简单算法
#include #include using namespace std;double abs1(double a){ return a>=0?a:-a;}int main(){ double a,m,e=1e-6; int i=0; printf("Please input number:"); scanf("%lf",&a); if(
2011-11-11 19:50:05 1501
rfcs_txt(中文文档)
2018-05-01
visualbox5.2.10源代码
2018-05-01
深入理解Linux内核(第3版)
2012-09-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人