- 博客(73)
- 资源 (49)
- 收藏
- 关注
原创 最长公共子序列
public static int longestCommonSubsequence(String A, String B) { // write your code here if (A == null || B == null) return 0; int aLen = A.length(); int bLen = B.length(); int [][]c
2016-04-09 11:20:08 333
原创 最长公共子序列
public static void printStr(int [][]b, String A, int i, int j) {if (i == 0 || j == 0)return;if (b[i][j] == 1) {System.out.print("-" + A.charAt(i - 1));printStr(b, A, i - 1, j - 1);} else if
2016-04-09 11:18:05 164
原创 Linux 线程结束的善后处理
下面以一个例子来说明线程结束后的善后处理:执行结果:只有调用了pthread_exit的时候才会调用线程结束的善后处理程序!
2013-11-23 23:58:27 997
原创 Linux 进程间【IPC】通信
进程间通信:1.管道匿名管道具有同源性的进程才可以通信 父进程与子进程 兄弟进程间通信命名管道不相干的进程可以通过命名管道通信2.消息队列3.共享内存mmap 会把内存的信息更新到文件中 文件容纳的信息较多System V共享内存 不会把内存的信息更新到文件 该文件容纳的信息较少4.信号5.信号量
2013-11-23 23:32:29 784
原创 Linux Makefile中 = := ?=
:= 是立即标量赋值 在定义时已经被确定= 是延时变量赋值 只有在这个变量被使用时才展开?= 是条件赋值 只有当变量还没有被定义的时候、才会将值赋值给?=左边的变量
2013-11-23 23:21:29 720
原创 Linux Makefile的编写 (一)
什么是Makefile?很多windows程序都不知道这个名词、因为windows的IDE为你做了很多事情、作为windows程序员你只需要鼠标一点就可以完成自动化编译、但是要作为一个专业的程序员、还是很有必要了解以及熟应用Makefile.下面先以一个简单的例子来说明Makefile的用法a.ha.cb.hb.cmain.c在当
2013-11-23 21:00:50 874
原创 Linux GDB调试
熟悉了windows环境下编程 习惯用图形化的调试工具、当从windows平台转向Linux平台、首先遇到的一个问题就是当程序出错、怎么快速解决bug呢?因为Linux平台没有像windows平台下的vc、vs图像化的调试工具!下面来学习一个Linux平台的GDB工具。下面通过例子来说明:1编译命令:gcc -g -o main main.c2执行 gdb main 装载main调
2013-11-23 19:10:35 787
原创 Linux shell脚本编程之调试
查询man手册 man shsh -n scriptname 检查语法错误sh -x scriptname 调试脚本
2013-11-23 16:29:59 578
原创 Linux shell编程之模式匹配
Linux模式匹配查找文件夹 ls -l | grep "^d" 查找shell ls -l | grep "sh$"模式匹配 ls -l | grep "l\{2\}" 找出有ll的文件
2013-11-23 15:43:26 1312
原创 Linux shell编程的循环结构 学习笔记
1.for循环 for var in 集合2.until结构 until condition 满足condtion退出循环不满足条件进入循环 满足条件不进入循环首先查询man手册 数字如何比较看一个例子:如果var=1 则var=5的时候则退出如果var=5 则不进入循环如果var>5 则进入循环 死循环注意var=1 变
2013-11-23 14:37:11 787
原创 Linux shell字符串比较
man test查询字符串比较需要注意的是字符串比较是否相等是用=而不是==先看一个简单的例子:例子中的字符串比较是用= 如果换成==执行的时候会报错 -o 是或的意思 与c编程中 ||一样。
2013-11-23 13:16:11 812
原创 shell变量中 && ||的用法
使用&&的一般形式为:cmd1 && cmd2&&左边的命令返回真后,&&右边的命令才会被执行!如果&&左边的命令执行失败 则右边的命令也不会执行使用||的一般形式为:cmd1 || cmd2||的用法是 如果||左边的命令为执行成功、那么就执行||右边的命令||左边的命令执行成功、||右边的命令就不会执行||左边的命令执行不成功 执行||右边的命令
2013-11-23 12:59:37 699
原创 Linux shell单引号与双引号的区别
用一个简单的例子说明shell编程中单引号跟双引号之间的区别执行结果:由结果可知 对于普通字符单引号跟双引号没有什么差别 都可以正常输出 但是当单引号跟双引号之内的是一个变量 单引号原样输出 而双引号可以输出变量的值.故双引号可以保持变量的内容。单引号只能是一般字符。
2013-11-23 12:38:55 738
原创 shell特定参数变量
在shell编程中 经常会遇到一些特殊变量$0 被调用程序的名称$n 被调用程序的第n个参数【不包括程序名称】n=1-9$# 调用脚本程序时、传递参数的个数$* 以单个字符串显示所有向脚本传递的参数$? 程序的退出状态、0表示成功。下面看一个简单的Demo执行结果:在main函数中 int main(int argc, const char *arg
2013-11-23 12:12:27 752
原创 shell 中export变量导出到子进程
熟悉Linux的人知道在/etc/profile中有PATH环境变量 在该变量的定义时 就在该变量前面使用export关键字!于是我们在登陆shell后 执行echo $PATH或者执行env都可以看到PATH环境变量的值下面我们来看个export的简单应用shellexport.shexportchild.sh执行结果需要注意的是
2013-11-23 11:17:00 1441
原创 初识shell编程
shell脚本在Linux中的重要用途 Makefile对工程完成自动化编译什么是shell呢?shell是用户和内核交互的接口一个简单的shell程序:chmod u+x ./shelldemo 添加可执行权限如果执行shelldemo 无法正常运行该shell脚本、而执行./shelldemo 却可以 why?因为执行shelldemo会去找环境变量 而
2013-11-22 23:57:19 592
原创 Linux fd文件描述符的本来面目
文件描述符 【file descriptor】对于内核而言、所有打开的文件都是通过文件描述符引用。文件描述符是一个非负整数。当打开一个现有文件或创建一个文件时、内核向用户进程返回一个文件描述符。当读或写一个文件时、使用open或crate返回的文件描述符标识该文件,将其作为参数传递给write或read.在依从POSIX的应用程序中、幻数0、1、2应当替换成STDIN_FILENO、STD
2013-11-22 22:18:59 1463
原创 Linux 进程结束前善后处理
通过man手册查询 man atexitSrc:exec:需要注意的是 如果调用_exit()或者_Exit()结束进程是不会调用atexit注册的函数.在main函数最后 return 0 与exit(0);都会调用atexit注册的函数!
2013-11-22 20:03:04 917
原创 Linux 进程[task_struct]的本质
众所周知 操作系统最核心的概念是进程、进程是操作系统分配资源的最小单位、其数据机构在linux中用task_struct描述 就是平时所说的进程控制块【PCB】。 提到进程 往往会说到程序 程序的定义:程序是一个普通文件、是一个机器代码指令和数据的集合、这些指令和数据存储在磁盘上的一个可执行的映像、所以说程序是一个静态的实体。在计算机内部、程序的执行过程实际上就是一个执行环境的总和、这个执
2013-11-22 19:27:44 1273
原创 Linux 静态库&动态库的使用
熟悉windows环境编程的人都晓得 windows环境下的静态库是.lib结尾的 而动态库是以.dll结尾在Linux环境下 静态库是以.a 结尾 而动态库是以.so.结尾以可以加版本后缀calc.h#ifndef _CALC_H#define _CALC_Hextern int add(int,int);extern int sub(int,int);#endi
2013-11-22 18:17:10 742
原创 Linux 动态库静态库的应用
熟悉windows环境编程的人都晓得 windows环境下的静态库是.lib结尾的 而动态库是以.dll结尾在Linux环境下 静态库是以.a 结尾 而动态库是以.so.结尾以可以加版本后缀
2013-11-22 16:27:12 100
原创 Linux环境下程序编译过程详解
Linux c程序源代码编译四阶段#include #define PI 3.14int main(int argc, const char *argv[]) { float area = PI * 4; printf("%.5f",area); exit(0);}第一个阶段:预编译gcc -E main.c -o main.I 从预编译的结果很容易可以看出
2013-11-22 16:14:40 979
原创 C/C++ 用函数返回值来传递动态申请的内存
char * getHeap(int num){ //返回堆中内存 char * p = (char * )malloc(sizeof(char)*num); return p;} 上述代码 在main函数中可以返回内存的指针char * getString(){ char p[]= "Hello World"; return p; }编译会有警告 warning C4172
2013-08-25 12:36:49 1021
原创 C/C++ 如何用指针参数去申请内存呢?
C++ Code#include #include #include void GetMemory( char **pp ){ *pp = (char *) malloc( 100 );}int main(int argc, const char *argv[]) { char *p = NULL;//new char; GetMemory(&p); strcpy(
2013-08-25 11:30:35 900
原创 C/C++ 如果函数的参数是一个指针 可以用该指针去申请动态内存吗?
看如下一段代码:#include #include #include /************************************************************************//* 把指针作为参数 在函数中动态申请内存?能否奏效呢 其一 函数参数要入栈{} 其二 编译器要为函数参数制作临时副本 函数参数param 其副本是_p
2013-08-25 10:58:20 737
原创 android getApplicationContext()与activity.this的区别
先看一个简单的例子:public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main)
2013-08-24 08:18:09 1392
原创 android 安装apk的意图
启动安装apk的意图其中file是指向下载新版apk的file对象Intent intent = new Intent();intent.setAction("android.intent.action.VIEW");intent.addCategory(Intent.CATEGORY_DEFAULT);intent.setDataAndType(Uri.fromFile(file)
2013-08-23 21:28:30 845
原创 android 自定义控件
自定义组合控件public class SettingView extends RelativeLayout { //视图 private View contentView; private TextView title;//标题 private TextView status;//状态 private CheckBox select;//是否选中 public SettingV
2013-08-23 20:54:49 801
原创 android 创建图片的拷贝
//创建图片的拷贝 //1.创建一个新的空白的图片 图片的大小跟原来是一样的Bitmap blackBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig());//2.得到一个画布Canvas canvas = new Canvas(blackBitmap);//第一
2013-08-19 22:29:25 916
原创 android获取图库图片并返回
Uri uri = data.getData();/* * 此时会抛出异常* Uri uri = data.getData();InputStream isl = getContentResolver().openInputStream(uri);Bitmap b = BitmapFactory.decodeStream(isl);*/try { InputStream is = g
2013-08-19 22:07:49 1462
原创 android 处理bitmap
//手机屏幕的宽高int windowWidth = wm.getDefaultDisplay().getWidth();int windowHeight = wm.getDefaultDisplay().getHeight(); BitmapFactory.Options opts = new Options();//不去真正解析位图 只是获取图片的宽高opts.inJustD
2013-08-19 20:56:10 632
原创 Linux mutex编程
#include#include#include#include#include#include//thread_functtionvoid * thread_function(void * arg);//mutexpthread_mutex_t work_mutex;#define WORK_SIZE 1024char work_area[WORK_SIZE];int
2013-08-18 22:39:17 672
原创 const修饰指针 变量
int a = 4;int const * p = &a;//const int * q = & a;//p是指向一个常量的指针(指针可变)cout<<"the value of *p is "<<*p<<endl;//修改p的指针的值int b = 5;p = &b;//OKcout<<"change the pointer of p,the value is "<<*p<<en
2013-08-18 15:05:09 547
原创 ad
public static int getBookTotalPage(int handle){ return jniBook.JNI_ereader_get_total_page(handle); }
2013-08-15 18:25:59 125
深入理解Android++卷I+高清版
2013-08-06
servlet详细介绍过滤器控制权限等
2013-01-05
pthread源代码
2013-11-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人