自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Android display

<br /><br />From:     http://blog.csdn.net/bonderwu/archive/2010/08/12/5805961.aspx<br /><br />Android display架构分析(一)<br />http://hi.baidu.com/leowenj/blog/item/429c2dd6ac1480c851da4b95.html<br />高通7系列硬件架构分析<br /><br />如上图,高通7系列 Display的硬件部分主要由下面几个部分组成:<br

2011-04-08 18:03:00 6996

转载 CTS test failed ----- android.graphics.cts.YuvImageTest#testCompressYuvToJpeg

From:http://code.google.com/p/android/issues/detail?id=11290Reported by [email protected], Sep 16, 2010Below test was executed on emulator.cts_host > start test android.graphics.cts.YuvImageTest#testCompressYuvToJpeg==============================

2011-03-24 18:00:00 1658

原创 杂乱的3.14

Launcher2:一、launcher.xml分析: DragLayer是整个屏幕。对于Workspace,在Launcher.xml源码中,说, 但是,我觉得应该是. 应该是有5个cell的,就是通过左下脚和右下脚那些“点点”切换出来的那5个桌面。对于源码中的那两个ClippedImageView就是左下脚和右下脚那些“点点”。对于DeleteZone,应该是当用户在桌面上长按一个widget时,把手位置就会出现一个垃圾桶形状的控件,就是这个控件。 对于Han

2011-03-14 17:31:00 1977 5

原创 杂乱的、未整理的

http://gqdy365.javaeye.com/blog/861047getTag()取得标签成员变量可以先使用,后定义在Java中标示符只能是以字符、“$”或者“_”开头在Java中布尔类型的值不能为0、-1等其它值,只能为true或false。这点与C语言是不同的Java中用String来定义一个字符串,其类型为类类型Java数据类型(原始数据类型):布尔类型:boolean字符类型:char整数类型:byte(1),short(2),int(4),long(8)浮点类型:float(4)双精度类

2011-03-09 16:52:00 1609

转载 双向链表的基本操作

<br />#include <stdio.h> <br />#include <stdlib.h> <br /><br />typedef struct Node<br />{<br />    int data;<br />    struct Node * next;<br />    struct Node * prior;<br />}NODE, *PNODE;<br /><br />PNODE create_list(void);    //创建节点<br />

2010-11-04 13:56:00 538

原创 网络编程

<br />1、端口号是用来区分用户程序的。<br />2、其实,只要撑握了UNIX域的编程,那么网络编程就显得简单了。<br />3、UNIX域:UDP  和  TCP<br />      网络:      UDP  和  TCP<br />4、下面是相关的例程:<br />一、首先是UNIX域的编程:<br />1、C<br />/*UNIX域:UDP_client*/<br />#include <sys/socket.h><br />#include <sys/types.h><br />

2010-10-18 15:25:00 629

原创 多线程

多线程-、主要函数:二、1、cpu调度的基本单位是线程。线,进程对于kernel而言没有什么区别,在内核里有相应的task_struct(任务描述符) 线程与进程:1)调度一样2)线程的创建成本会快一些2、线程,地址空间是共享的pthread_self();pthread_create();pthread_exit(NULL);pthread_join(tid,NULL);创建多个线程: pthread tid[5] ; pthread_create(tid+i,

2010-10-06 10:38:00 496

原创 文件锁

文件锁一、主要函数:fcntl二、读锁是共享锁,读排斥写F_SETLKW是F_SETLK的一个阻塞版本(SEEK_SET,0,0)锁整个文件l_len要么是0,要么大于0l_type 只能由自己修改F_GETLK测试一把锁注意:子进程不继承文件锁用锁的时候,不要用标准I/O(fread,fwrite),应用read,write死锁:系统遇见死锁,它会选择一个进程退出,退出的这个进程一般是最后一次加锁失败引起死锁的那个进程kill(pid,SIGINT)

2010-10-06 10:37:00 754

原创 守护进程

守护进程1、setpgid一般用不着2、一个进程只能为它自己或其子进程修改进程组3、会话-----多个进程组的集合4、setsid-----进程组的组长不能setsid5、守护进程没有控制台ps -axj服务器应该是一个守护进程(LANQQ)守护进程最大的特点是不占用终端/*damon.c*//*守护进程*/#include #include #include #include int daemonize(int n

2010-10-06 10:35:00 526

原创 高级I/O

高级I/O一、主要函数:select,poll,epoll,readv,writev二、1、select,poll,epoll的作用就是监视多个I/O.如果不希望被某些信号打断可用pselect,ppoll.2、select每次用select之前都要构造一下。当监视读一个写端关闭的进程时,select总是能返回。3、pollPOLLIN 读,POLLOUT写struct pollfd fds[2];nfds = 2;fds[0].fd = 0;fds[0].events = POLLIN;fds[1].fd

2010-10-06 10:26:00 757

原创 进程间通信

进程间通信一、主要函数:pipe();msgsnd();msgrcv();二、1、管道:pipe()一切设备皆文件管道属于内核,是内核的一片内存,fork不会有这样的内存管道没有数据时会阻塞。一旦数据被从管道里读出来,那么管道里就没有这个数据了。管道的数据,读完了就没有了,不像文件。管道pipe要在fork之前2、fifo1)用mkfifo创建一个fifo文件"saif"  fifo也是有大小限制的,最大为65536,如果没有数据也会阻塞  注:尽量少用fifo2)/*如果写端已关闭,那么读端不再阻塞,会跟

2010-10-05 17:09:00 966

原创 信号

信号一、主要函数:signal();alarm();pause();setitimer();sigprocmask();sigaction();二、kill -l 列出当前支持的信号不存在编号为0的信号普通信号不排队,实时信号排队(但一般我们用不着)  异种信号允许嵌套,那一个未完也可嵌入另一个;  同种信号不允许嵌套,同种信号不排队,所以为了防止信号丢失,信号处理一定要快。1、signal对信号的处理有三种方式:1)捕捉信号,signal(SIGINT,sig_handler);   void sig_h

2010-10-05 16:51:00 766

原创 进程

进程一、主要函数:fork();wait();waitpid();exec家族;system();   其它函数:getppid();getrlimit();atexit();strtok();getline();二、1、fork()用于创建一个子进程 1)父进程中,在fork之后修改全局变量的值,不会影响到其子进程的变量  2)子进程中修改变量的值并不影响父进程不该变量的值,即使这个变量为全局变量 3)一般父进程先执行。 4)但是,父、子对文件的操作是互相影响的.#include #include #in

2010-10-05 16:35:00 523

原创 加密

加密一、主要函数:crypt();二、1、注意:crypt加密,GCC编译时要加上参数-lcrypt2、char *res = (char *)crypt(argv[1], "abc");三、例程:1、/*crypt.c*/#include #include int main(int argc, char **argv){ char *res = (char *)crypt(argv[1], "abc"); printf("%s/n", res);

2010-10-05 16:18:00 530

原创 时间和日期

时间和日期一、主要函数:time();ctime();strftime();localtime();gettimeofday();二、/*2010-09-18*//*时间和日期*//*time()返回值是以秒为单位的,ctime()以固定的格式输出时间日期,strftime()可以按照某种格式打印,也就是自定义打印格式。localtime()返回符合认知的时间,gettimeofday()可以精确到微秒。*/#include #include #include #include typedef long l

2010-10-05 16:12:00 720

原创 文件I/O

文件I/O一、主要函数:open(),creat(),read(),write(),close(),fcntl(),lseek()二、open,creat,read,write,close等函数的操作与文件描述符fd有关。1、对于open函数而言,仅当创建新文件时才使用第三个参数,由open返回的文件描述符一定是最小的未用描述符数值,常用的常量有O_CREAT,O_TRUNC,O_NONBLOCK,常用open函数代替creat2、lseek成功执行,返回新的文件偏移量(相对于文件头0所偏移的量);比较ls

2010-10-05 16:06:00 674

原创 文件和目录

文件和目录一、主要函数:access();dup();dup2();opendir();readdir();closedir();mkdir();chdir();stat();lstat();sprintf();strstr();bzero();truncate();link();unlink();symlink(),readlink();rename();rename();二、1、access用于测试对文件的访问权限,比如说测试某个文件是否可读:access(“file.txt”,R_OK),若成功则返回

2010-10-05 15:12:00 488

转载 mmap函数的使用

<br />UNIX网络编程第二卷进程间通信对mmap函数进行了说明。该函数主要用途有三个:<br />1、将一个普通文件映射到内存中,通常在需要对文件进行频繁读写时使用,这样用内存读写取代I/O读写,以获得较高的性能;<br />2、将特殊文件进行匿名内存映射,可以为关联进程提供共享内存空间;<br />3、为无关联的进程提供共享内存空间,一般也是将一个普通文件映射到内存中。<br />函数:void *mmap(void *start,size_t length,int prot,int flags,i

2010-10-05 10:42:00 427

原创 (myls)模拟" ls "命令

/*2010-09-16*//*模拟" ls "命令*//*myls*/#include #include #include #include #include #include #include #include void myls(const char* path){    const char* savepath=path;    char BUF[500];    struct stat buf;    int ret;    bzero(BUF,500);    ret=lstat(path,&b

2010-09-16 20:50:00 3978

原创 mycp

/*2010-09-14*//*1 实现一个mycp,功能如同cp 例如: ./mycp /etc/passwd /tmp/passwd*//* *打开要被复制的文件1,同时创建一个新的文件2,读文件1到BUF,然后将BUF的内 *容写到文件2 * */#include #include #include #include int main(int argc,char** argv){    if(argc!=3)    {        perror("argc");        exit(1);   

2010-09-14 20:35:00 1038

转载 右左法则

<br />C语言所有复杂的指针声明,都是由各种声明嵌套构成的。如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法。不过,右左法则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个声明的,两者可以说是相反的。右左法则的英文原文是这样说的:<br /> <br />The right-left rule: Start reading the declaration from the innermost pare

2010-09-12 21:00:00 380

原创 排序

<br />/*2010-09-12*/<br />/*排序*/<br />#include <stdio.h><br />/*************************************************************<br /> *选择排序法:<br />  选出最小的放在第一个位置,第二小的放第一个位置......<br /> *用k记住所找数中最小数的下标<br /> *<br /> * ******************************************

2010-09-12 19:19:00 351

原创 递归

<br />/*2010-09-12*/<br />/*递归*/<br />/**********************************************************************<br /> *拿下面的cutpie(n)来说一下递归,假如n=3,那么main函数调用cutpie(3),进到cutpie(3)后,去到那return cutpie(3-1)+3 这里,按理说返回cutpie(3-1)+3不就完事了吗,但是cutpie(3-1),即cutpie(2)又是多少

2010-09-12 17:11:00 331

原创 静态库与动态库(共享库)

<br />静态库(.a)与动态库(.so)<br />静态库:在编译过程中将库函数的代码直接加入到生成的可执行程序中,程序运行过程中不需要利用库函数。<br />静态库的东西都要以静态链接的方式来生成。由于代码就在可执行程序中,所以它执行起来比较快,但是,它造成了可执行程序的臃肿。<br />共享库(动态库):编译时,只是在生成的可执行程序中简单指定需要使用的库函数信息,在程序执行的时候才与函数建立映射关系。(接口,.so,不需要重新编译,所以升级快)。<br />创建静态库:<br />静态函数库是一组

2010-09-11 16:57:00 494

原创 单向链表

/*2010-09-07*//*单向链表*/#include #include #include typedef struct node//每一个节点就是一个结构体类型的数据{    int x;    struct node* next;}NODE;//typedef NODE struct node//不能这样宏定义!/********************************************************* *函数名称:init_list *函数功能:初始化单向链表  函数参数

2010-09-09 12:22:00 543

原创 用链表实现队列

<br />/*2010-09-09*/<br />/*用链表实现队列*/<br />#include <stdio.h><br />#include <stdlib.h><br />#include <string.h><br />#ifdef D<br />    #define DEBUG(format, ...) printf(format,##__VA_ARGS__)<br />#else<br />    #define DEBUG(format, ...) do{}while(0)<br />

2010-09-09 11:45:00 1028

原创 文件

<br />/*2010-09-08*/<br />/*文件处理函数*****************************************************<br /> *fopen();fread();fwrite();rewind();fseek();fflush();sleep();<br /> *<br /> * ***************************************************************/<br />#include <stdio

2010-09-08 21:04:00 467

原创 学生管理系统

<br />/*学生成绩管理系统*/<br />/*2010-09-08*/<br />#include <stdio.h><br />#include <stdlib.h><br />#include <string.h><br />#define N 2<br /> <br />typedef struct student<br />{<br />    char name[20];<br />    int chinese;<br />    int math;<br />    struct stu

2010-09-08 21:01:00 419

原创 位域

<br />位域<br />/*2010-09-08*/<br />/*位域*/<br />#include <stdio.h><br />#include <stdlib.h><br /> <br />typedef struct object<br />{<br />    unsigned char status:3;//加unsigned!<br />    unsigned char setting:3;<br />    unsigned char power:2;<br />}OBJ;<br

2010-09-08 20:53:00 362

原创 类型转换

<br />两种转换方式:<br />1、隐式转换<br />2、强制转换<br />/*2010-09-06*/<br />/*类型转换*/<br />#include <stdio.h><br />int main()<br />{<br />    double d=100.25;<br />    int x=d;<br />    int *pint=(int*)&d;<br />    printf("x=%d/n",x);//结果为100,x取d的整数部分;<br />    printf("

2010-09-06 08:45:00 426

转载 浮点数在内存中的存储

<br />浮点数在内存中的存储<br />/*看float型,double型数据在内存中的存储*/<br />#include <stdio.h><br />int main(void)<br />{<br />    int i;<br />    float x=16.25;<br />    //double x=16.25;<br />   // printf("sizeof(x)=%d/n",sizeof(x));<br />    unsigned char* ptr = (unsigned

2010-09-05 20:36:00 1411

原创 (Struct)内存对齐

<br />对内存对齐的理解:<br />   (struct)内存对齐的规则是:<br />       1、对于结构的各个成员,第一个成员位于偏移为0的位置,以后每个数据的偏移量必须是Min(编译器被指定的对齐字节数,该数据成员的自身长度)的倍数。<br />GCC中,Min(系统默认(4), 数据成员自身长度(char/short/int/double))。<br />        2、在数据成员完各自对齐之后,结构体(或联合体)本身也要进行对齐,对齐将按照编译器被指定的对齐字节数和结构体(或联合体

2010-09-05 13:50:00 5836 1

原创 堆和栈

一直都没搞清楚什么是堆,什么栈。以下这一段代码有助于理解它们:/*2010-09-04*//**************************************************************** *有关堆和栈 * * ***************************************************************/#include #include char *Getmamory1(void){    char *p="hello world";//此

2010-09-05 13:31:00 630

复变函数与积分变换试题及答案

复变与积分变换试题收集,希望对你的学习有帮助哦

2010-04-14

8255A的应用举例

有关8255A并行接口的应用,对微机原理的学习有一点帮助的哦.

2009-09-14

空空如也

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

TA关注的人

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