- 博客(34)
- 资源 (3)
- 收藏
- 关注

原创 vim使用心得
用4个空格替换tab键在用户目录下新建.vimrc文件。在里面加入set ts=4set expandtab显示行号在.vimrc 文件中加入set nu!
2014-12-18 08:52:01
621

原创 git 的使用
github太慢。最近使用OCchinaGit。1.在网站上建立项目。记住地址。2.在本地clone这个项目。可以加入一些自己的文件3.git add * 将所有文件加入git4git commit -m ‘--------’ 提交所有 ‘’里面是提交时的注释信息。可以有多个-m,多行信息。5git push
2014-12-17 12:56:58
323

原创 Linux命令
重置root密码sudo passwd rootlinux端口占用问题:lsof -i:端口号,查看哪个进程占用的该端口。杀死进程用 kill -9 进程号。查看用户进程1>root权限下ps -fu USER_ID 显示这个用户的所有进程2>ps -a
2014-11-29 10:50:27
409
原创 更改默认pyyhon解释器
ubuntu默认带着python。当安装了新的python3.4时,命令行输入python还是显示低版本。解决方法:问题分析:其实在linux系统中多个python版本是可以共存的,只不过在终端中运行的时候,输入 python2.7 或者 python3.4 就能进入不同的版本了,而且在你的*.py文件中可以用 #!/usr/bin/python 来指定程序的解释器版本,
2015-04-06 21:59:25
925
原创 dot画图那些事儿
安装。编写dot文件“a”与“b”都是节点。用->代表有向边。-代表无向边。“ ”中间的是节点中要显示的内容。也可以lable里面是节点的内容,a、b此时都是节点的名字而已。shape 节点的形状color 节点边颜色。style 当style = filled时, 节点填充色为边颜色。fontcolor 节点内容的文本颜色。
2015-04-06 20:00:10
608
原创 CLHLock的C语言实现
#include #include #include #include #define FALSE 0#define TRUE 1static int shareddata = 50;struct qnode* tail;struct qnode q;pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
2015-03-30 20:59:22
749
原创 testMarkDown
titletitle1asdfasdfasdfasdfasdfasdf asdfasdf asdfasdf asdfasdf public static mainpublic static main{ int i; int j;}nihaohello hello hello hello world; hello
2015-02-25 20:52:04
392
原创 标记联合体
对于typedef的相互嵌套的问题,把哪个放在前面都不行。解决办法。在最先面先声明一下。这样在Exp_time里面编译器就知道Exp是什么意思了。用编辑联合体可以做出类似java的多态。也就是可以用一个基类表示所有可能的子类。上面的这个关系也是用Exp表示一种抽象的运算, 而add和times是两个子类,是具体的。
2015-01-29 13:16:32
1014
原创 C与java实现命令行系统
#include #include #define TRUE 1#define FAULSE 0typedef enum{ EMPTY, STRING}Kind;typedef struct Arg{ char* name; char* option; char* description; Kind kind; void (
2015-01-21 12:56:56
547
原创 C语言的异常处理——setjmp
C语言实现类似JAVA的异常处理,需用用到标准库中的setjmp.h。 在导入了setjmp.h之后,我们就可以利用里面定义的类型jmp_buf来设置锚点,也就是可能会出现异常的位置,相当于java的try。 jmp_buf结构体里面存放了寄存器的状态,setjmp(buf)在第一次执行的时候一定是返回0,int setjmp(jmp_buf envbuf)
2015-01-17 12:33:36
716
原创 多态在JVM中的实现——invokevirtual与invokespecial
先给一段程序public class BaseClass{ void supermethod() { System.out.println("superMethod"); } void onlysuper() { this.supermethod(); System.out.println("only super"); }}public class ChildC
2015-01-10 16:49:54
4017
1
原创 java虚拟机接口的实现
在java虚拟机中,有invokevirtual和invokeinterface两个很类似的指令。这两条指令的区别在哪里呢??
2015-01-10 14:43:50
1818
原创 函数指针的使用
1,声明格式type (* name) (type arg1,...)与函数声明不同的地方,就是把夲身的函数名换成(*name)。下面的例子用了一个typedef化简的声明的过程。funcp2夲身的声明应该是int (*funcp2) (int a, int b)2,赋值函数指针在使用前一定要先赋值。将函数名(也就是函数的地址)赋值给函数指针。3,调用调用可以有两种
2015-01-08 19:01:21
611
原创 C语言指针的操作
如果想要表达,将constants_pool->info+i的位置存放一个u8类型的数据这面这种写法*(u8*)(constant_pool->info+i)意思是constant_pool->info+i的位置先强制转化为一个u8类型的地址,然后再寻址,往里面放数据。*(u8*)&(constant_pool->info[i])这一
2014-12-31 00:38:40
1621
原创 对于C语言头文件里面extern的理解
如果想在一个C文件里面引用另外一个C文件里面的变量,怎!么!办?我们的做法是将变量在H文件中声明为ertern,然后在其他文件中导入这个H文件。这里需要注意的是,如果导入了H文件,那就不能声明同名的变量了。另外,H文件中的声明变量必须是在别的文件里面已经声明过的。这里特别强调变!量!如上图。左边是H文件,里面声明的一个ppp变量。在右边的文件里面引入H文件。但是!这
2014-12-29 12:42:34
4047
原创 Tiger垃圾收集器的实现
配合实验文档Lab4先解释文档里面的三个名词。Memory GC MapsCall Stack and GC StackClass GC Maps Memory GC Maps 是为了记录变量是否指向堆上。显然,只有指向堆上,才有必要回收。这里因为Tiger没有static的变量,所以我们执行一个方法的时候,参数列表里面的变量是唯一引用外面变量的地方
2014-12-28 00:37:31
405
原创 可变参数函数stdarg
#include #include int add(int pre,...){ va_list arg_ptr; int sum = pre; int argValue; va_start(arg_ptr,pre); do { argValue=va_arg(arg_ptr,int); sum+=arg
2014-12-18 20:31:38
499
原创 FILE的操作
fread原型:size_t fread(void *buffer, size_t size, size_t count, FILE *stream);从一个文件流中读数据,读取count个元素,每个元素size字节.如果调用成功返回count.如果调用成功则实际读取size*count字节fseekint fseek( FILE *stream, long offse
2014-12-18 10:05:15
458
原创 makefile使用心得
在makefile里面输入all: gcc 。。。。 。。。。 。。。。clean : rm -rf 。。。。。注:命令前面的空格是tab。也就是/t,所以如果vi的tab被替换,需要用别的编辑器处理。此外还有一个问题,在windos下的文件,换行符到了linux就多了一个^M,去掉的办法很简单。用
2014-12-18 08:53:27
521
转载 设置 Ubuntu DNS 缓存
1. 安装dnsmasq:# 安装dnsmasq的软件包[linuxidc@linuxidc-Ubuntu ~] $ sudo apt-get install "dnsmasq"2.设定dnsmasq接管本机的DNS解析请求:# 修改dnsmasq的配置文件[xport@ubuntu ~] $ sudo gedit /etc/dnsmasq.conf# 找到下面
2014-12-08 18:47:43
865
原创 遍历HashMap
在应用中碰到了要遍历HashMap的情况。总结一下。先上图。用cycle创建了一个Set的实例enn。用enn的iterator()返回一个迭代器Iterator。此时的迭代器是一个Key—Value对。所以需要Map.Entry entry = itt.next()。一下摘自JDK1.7public static interface Map.Ent
2014-12-05 13:05:15
523
原创 java的静态内部类
java的静态内部类或许有许多用途。最近用到了一个,记录一下。静态的内部类与非静态的内部类有什么区别呢??从应用层面上讲,创建静态内部类的实例可以不通过其外部类。贴一小段代码。public class Ast{ // /////////////////////////////////////////////////////////// // type pub
2014-12-05 10:11:56
449
原创 对象序列化Serializable
import java.io.Serializable;public class Graph implements Serializable{ private static final long serialVersionUID = 1L;// graph node public class Node implements Serializable { private st
2014-12-05 10:02:20
338
原创 linux下使用tar命令
解压语法:tar [主选项+辅选项] 文件或者目录使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。主选项:c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。相当于打包。x 从档案文件中释放文件。相当于拆包。t 列出档案文件的内容,查看已经备份了哪些文件。特别注意,在参数的下达中, c/x/t 仅
2014-11-29 10:53:31
450
原创 eclipse Package Explorer标志的含义
红色正方形:私有蓝色实心三角形:default方法绿色圆球:public方法右边C标:构造函数右边绿色实心三角形:重载父类方法右边空心三角形:实现父类abstract方法
2014-11-18 19:59:18
1055
原创 Adding profiling instructions to applications with Soot
Adding profiling instructions to applications with SootFeng Qian (fqian@sable.mcgill.ca)Patrick Lam (plam@sable.mcgill.ca)March 8, 2000This tutorial is based on the countgotos example, w
2014-11-13 16:12:57
781
原创 Creating a class from scratch with Soot
Creating a class from scratch with SootFeng Qian (fqian@sable.mcgill.ca)Patrick Lam (plam@sable.mcgill.ca)February 4, 2005Chris Goard (cgoard@sable.mcgill.ca)This tutorial is based on th
2014-11-13 14:46:04
715
原创 setuid的使用
用 setuid() 设置实际用户 UID 和有效用户 UID。用 setgid() 设置实际组 ID 和有效组 ID。两个函数声明如下:-- 设置 UID 和 GID" src="file:///E:/%E6%96%87%E6%A1%A3/chuanspirit@163.com/87982106bb8b4596b427ecc91b8db7b2/656c325%26690.jpeg"
2014-11-10 18:38:30
2288
1
原创 Instrumenting Android Apps with Soot
I am excited to let you know that we have recently committed to the development Branch of Soot support for reading and writing Dalvik bytecode with Soot. (This code will also be contained in Soot’s
2014-11-05 19:54:03
820
原创 Android adb.exe程序启动不起来,如何处理
Android adb.exe程序启动不起来,如何处理 经常遇到 Please ensure that adb is correctly located at 'D:\java\sdk\platform-tools\adb.exe' and can be executed.遇到问题描述:运行android程序控制台输出[2012
2014-11-04 18:58:34
440
原创 Soot 分析安卓apk过程
首先要下载官方的几个包http://vandyk.st.informatik.tu-darmstadt.de/abc/上面这几个包要全部引用到还有一套安卓的
2014-11-04 18:39:11
3977
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人