- 博客(15)
- 资源 (22)
- 问答 (1)
- 收藏
- 关注
原创 使用longjmp,带超时限制调用read
//Set max timeout when block reading// by Jay Zhang#include #include #include #include #include static void sig_alarm(int);static jmp_buf env_alarm;#define MAXLINE 1024int main(void){
2012-08-29 13:38:30 4480
转载 SOCKET之 socketpair的使用
socketpair函数概要如下:#include #include int socketpair(int domain, int type, int protocol, int sv[2]);sys/types.h文件需要用来定义一些C宏常量。sys/socket.h文件必须包含进来定义socketpair函数原型。socketpair函数需要四个参数。他们是:套接口的域
2012-08-28 15:22:26 4544
转载 java中使用队列:java.util.Queue
在java5中新增加了java.util.Queue接口,用以支持队列的常见操作。该接口扩展了java.util.Collection接口。Queue使用时要尽量避免Collection的add()和remove()方法,而是要使用offer()来加入元素,使用poll()来获取并移出元素。它们的优点是通过返回值可以判断成功与否,add()和remove()方法在失败的时候会抛出异常。 如
2012-08-27 16:56:52 1216
转载 Android定制属于你自己的导航栏
在实际开发中,我们时常要用到上方的两个按钮,通俗的我们可以叫做导航,等等.还是先看今天需要要实现的一个最的效果:其实实现这样的效果有多种方式,今天我要给大家要介绍的就是如何的去定制自己的控件,也就是自定义控件,自定义控件分为多种,有组合控件,有重写在原来已有的控件上做基础的修改,也有自己重写写一个类继承于View对象,这方面的知识在实际开发当中也会常碰到,当然像我们这种菜鸟在这
2012-08-26 23:58:48 1485
转载 Linux 下C语言简单实现线程池
C语言简单实现线程池0 前言网上关于线程池的例子还是不少,简单明了的倒是比较少,看了网上的资料,打算借鉴网上的一些例子,自己实现以下。线程的概念就不多说,首先说一下多线程的好处:多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。那么为什么又需要线程池呢?我们知道应用程序创建一个对象,然后销毁对
2012-08-24 00:22:23 1471 1
转载 判断android设备是否支持多点触控
实现代码如下: [java] view plaincopy/** * 判断设备是否支持多点触控 * @param context * @return */ public static boolean isSupportMultiTouch(Context context) { PackageManage
2012-08-23 00:20:02 2049
转载 Android系统的开机画面显示过程分析
好几个月都没有更新过博客了,从今天开始,老罗将尝试对Android系统的UI实现作一个系统的分析,也算是落实之前所作出的承诺。提到Android系统的UI,我们最先接触到的便是系统在启动过程中所出现的画面了。Android系统在启动的过程中,最多可以出现三个画面,每一个画面都用来描述一个不同的启动阶段。本文将详细分析这三个开机画面的显示过程,以便可以开启我们对Android系统UI实现的分析之路。
2012-08-22 11:15:45 1491
转载 Android模拟按键——源码环境下开发应用程序
在http://blog.csdn.net/ericahdu 的帮助下,实现了模拟按键,在此,首先表示感谢:)在源码下写程序可以摆脱SDK的限制,毕竟SDK开放的API有限,比如我们实现模拟按键时,需要用到IWindowManager这个类,但是SDK中是不提供这个类的首先下载编译源码,然后在源码的frameworks/base/cmds下新建一个文件夹作为你新扩展模块的一个目录。比如叫做
2012-08-17 09:31:24 1843
原创 调用fork两次以避免僵死进程
如果一个进程fork一个子进程,但不要它等待子进程终止,也不希望子进程处于僵死状态直到父进程终止,实现这一要求的技巧是调用fork2次。下面是实例代码:#include #include #include int main(void){ pid_t pid; if((pid = fork()) < 0) { pri
2012-08-14 13:51:40 1424
原创 exit的状态
下面是一个实例,来演示不通的exit值#include #include #include void pt_exit(int status){ if(WIFEXITED(status)) printf("nomal termination, exit status = %d\n", WEXITSTATUS(status)); else if(WIFSIGNALED(s
2012-08-14 13:29:53 904
原创 vfork函数实例
一下是vfork函数的实例,跟之前的fork函数类似#include #include #include int glob = 6;int main(void){ int var; pid_t pid; var = 88; printf("before vfork\n"); if((pid
2012-08-14 09:41:47 1097
原创 fork函数实例
下面是一个fork函数的实例#include #include #include int glob = 6;char buf[] = "a write to stdout\n";int main(void){ int var; pid_t pid; var = 88; if(write(
2012-08-14 09:17:16 890
原创 自动变量的潜在问题
下面是一个错误的实例......#define DATAFILE "datafile"FILE *open_data(void){ FILE *fp; char databuf[BUFSIZE]; if((fp = fopen(DATAFILE, "r")) == NULL) retur
2012-08-14 08:32:46 794 2
原创 setjmp 和 longjmp函数的使用
setjmp和longjmp函数可以实现函数之间的跳跃(goto),下面是一个实例#include #include static void f1(int, int, int, int);static void f2(void);static jmp_buf jmpbuffer;static int globval;int main(void){ int
2012-08-13 16:58:55 913
原创 UNIX C 编程 ---- atexit函数的使用
#include static void my_exit1();static void my_exit2();int main(void){ if(atexit(my_exit2) != 0) printf("error: can't register my_exit2\n"); if(atexit(my_exit1) != 0) printf("error: can't
2012-08-13 15:46:20 1170
Android usb和PC进行通信
2012-11-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人