自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (2)
  • 收藏
  • 关注

原创 根据数据使用arcGIS画分级图

ArcGIS根据需求绘制分级图

2023-01-11 22:31:14 3149

原创 编程练习题——猴子吃桃

题目描述猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。 到第N天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。输入N输出桃子总数样例输入10样例输出1534------------------------------------------------------------------------------------------

2021-04-23 13:44:44 451

原创 手工编译openjdk8

编译之前一定要去阅读官方文档!!OpenJDK Developers’ GuideOpenJDK Build README准备工作编译openjdk8,首先要做一些准备工作。建议的环境如下:gcc:4.8.2g++:4.8.2make:3.81另外还需要Oracle jdk7作为bootstrap JDK,在执行configure时使用--with-boot-jdk指定Oracle jdk7路径。(注意:make执行时不能设置JAVA_HOME)我的环境是ubuntu

2021-03-25 11:15:18 227 1

原创 栈溢出攻击示例(shellcode打印/etc/passwd内容)

参考:https://blog.csdn.net/omnispace/article/details/51005934在实验之前,首先需要关闭操作系统的ASLR,否则每次内存地址都会发生变化。关闭ubuntu操作系统的ASLR需要以root权限执行命令(文件内容默认为2,且操作系统重启后自动恢复):echo 0 > /proc/sys/kernel/randomize_va_space漏洞代码入下:#include <stdio.h>#include <stdl

2020-12-02 11:10:13 398

原创 个人物联网(目前用到了树莓派、PMS7003攀藤g7传感器、DHT11温湿度传感器)

双方各

2020-11-20 21:20:35 1213

翻译 lstat系统调用简介

参考:https://www.man7.org/linux/man-pages/man2/lstat.2.html用于获取文件状态的函数:stat、fstat、lstat、fstatat其中,lstat获取符号链接状态函数声明

2020-07-24 11:39:47 334

原创 do_execve函数分析--linux内核0.11版本(未完成)

挖个坑

2020-07-23 21:13:17 252

原创 打印vector容器的模板函数

今天在测试vector的时候想写一个vector的打印函数。为了测试不同数据类型的vector,肯定是编一个模板函数。然后就报错。直到看了《理解typename的两个含义》才明白哪里出错。下面是最后正确的代码:#include<vector>#include<string>#include<iostream>using namespace std;template <typename T>void print_vec(vector<T&g

2020-07-06 10:08:41 566

原创 find_entry函数分析--linux内核0.11版本(未完成)

find_entry函数分析--linux内核0.11版本 未完成

2020-06-26 18:01:51 203

原创 Linux0.11内核完全注释--vsprintf函数

#include<stdarg.h>#include<stdio.h>#include<string.h>#define ZEROPAD 1 /* pad with zero */#define SIGN 2 /* unsigned/signed long */#define PLUS 4 /* show plus */#define SPACE 8 /* space if plus */#define LEFT 16 /* left justi

2020-06-17 10:34:05 488

原创 Linux内核(v0.11)进程信号

截图来自《Linux内核完全注释:基于0.11内核》

2020-06-15 19:05:12 97

原创 C语言调用内嵌汇编实现的函数的例子

一个C语言调用内嵌汇编实现的函数的例子。extern inline int my_strncmp(const char * cs, const char * ct, int count){ register int __res; __asm__("cld\n" "1:\tdecl %3\n\t" "js 2f\n\t" "lodsb\n\t" "scasb\n\t" "

2020-06-15 12:29:50 606

原创 Linux内核完全注释(v0.11)--get_base()、get_limit()

阅读Linux内核完全注释traps.c,发现有个函数赵博士没有说明。好吧,自己动手丰衣足食。traps.c里源码第72行是这样的:printk("base: %p, limit: %p\n", get_base(current->ldt[1]), get_limit(0x17));这个get_base()函数在sched.h里定义的:#define _get_base(addr) ({\unsigned long __base; \__asm__("movb %3,%%dh\n\t"

2020-06-11 18:55:13 374

原创 Linux内核学习遇到的汇编指令

Linux内核学习遇到的汇编指令cldclear direction,控制edi指向的字符串地址变化方向是从低到高。stdset direction,repnerepeat not equal,当不相等时重复。与它相对的是repe,当相等时重复。scasb【al】–【di】,比较查询di中是否有al中的字符,每比较一次di自动变化,指向上一个或下一个单元。repne scasb扫描edi指向的字符串,扫描方向从低地址向高地址,如果遇到字节等于al或者ecx计数为0,则扫描结束。stos

2020-06-10 10:17:15 756

原创 嵌入汇编示例讲解

嵌入汇编介绍底层的C语言程序经常用到嵌入汇编(也称内联汇编)语句。经常写高级语言的同学应该很少接触到,一旦碰到两眼一抹黑。这里列举一个例子简单介绍下。如果有精力推荐Linux内核完全注释系统地学习。具有输入和输出的嵌入汇编语句基本格式如下:asm("汇编语句" :输出寄存器 :输入寄存器 :会被修改的寄存器);除了第一行,后面带冒号的行不适用就可以忽略(“:”需要保留,否则无法区分输出寄存器、输入寄存器还是会被修改的寄存器)。“汇编语句”是一系列汇编指令,用于实现某个功能

2020-06-09 21:42:10 584

原创 C语言中字符数组在内存中的存储

C语言中字符数组在内存中的存储C语言中字符数组使用比较常见。一般先分配一定容量的字符数组,然后赋值使用。字符数组的使用一定要注意,如果是通过下标逐个字符赋值,那么在结束的位置一定要赋一个0(或者\0,一样的)。另一种比较常见的情况,如果给字符数组赋值一个字符串,在无法判断字符串长度的情况下,一定要设置字符数组最后一个位置为0(或者\0),否则可能发生缓冲区溢出。原因在于字符数组用0表示结尾,0后...

2020-05-05 13:05:16 2433

producer_consumer_v2.c

别人的太贵了,自己写一份分享!c语言实现生产者消费者模型,支持设置生产者消费者线程数量,支持设置消息数量。消息的组织形式为链表。生产者生产消息和消费者处理消息分别需要对应的条件变量。代码编译方式见注释

2020-04-28

building the web of things Dominique D. Guinard

从物联到万联 Node.js与树莓派万维物联网构建实战原版英文pdf。作者Dominique D. Guinard、Vald M.Trifa

2018-01-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除