自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 资源 (22)
  • 收藏
  • 关注

转载 iOS 上常用的两个功能:点击屏幕和return退出隐藏键盘和解决虚拟键盘挡住UITextField的方法

iOS上面对键盘的处理很不人性化,所以这些功能都需要自己来实现,首先是点击return和屏幕隐藏键盘这个首先引用双子座的博客 http://my.oschina.net/plumsoft/blog/42545,他的文章写的很好,对大家的理解很有好处。在 iOS 程序中当想要在文本框中输入数据,轻触文本框会打开键盘。对于 iPad 程序,其键盘有一个按钮可以用来关闭键

2013-01-18 14:27:32 421

转载 iphone崩溃日志分析工具symbolicatecrash用法

iphone崩溃日志分析工具symbolicatecrash用法iphone崩溃日志分析工具symbolicatecrash Symbolicatecrash是Xcode自带的一个分析工具,可以通过机器上的崩溃日志和应用的.dSYM文件定位发生崩溃的位置,把crash日志中的地址替换成代码相应位置。使用效果:分析前:Thread 0 name: Dispat

2013-01-15 11:11:16 1057

转载 iphone/ipad crash文件分析方法

一. 问题的产生在xcode的Window->Orgnizer->Device Logs里面可以看到连着的iphone(ipad)设备上面程序crash的记录,但设备上的一个crash记录只能同步一次,一旦在某台Mac上查看了Device Logs,设备上的crash文件就都会放到这台Mac上。从Device Logs里面看crash文件,会发现有时候崩溃的信息里面

2013-01-15 10:57:42 949

转载 新浪微博iOS版SDK“宝玉XP”框架学习笔记

本文为论坛会员3h2om分享,对新浪微博iOS版SDK-宝玉XP框架进行研究所写的学习笔记,非常详细和精彩。 本人刚入学iOS开发,在学习的过程中,对新浪微博iOS版SDK-宝玉XP框架进行了学习(本文为论坛会员3h2om分享,对新浪微博iOS版SDK-“宝玉XP”框架进行研究所写的学习笔记,非常详细和精彩。本人刚入学iOS开发,在学习的过程中,对新浪微博iOS版SDK-“

2013-01-06 12:30:10 460

国内主流开放平台发展状况与盈利模式分析报告.pdf

开放平台 www.51cto.com 技术成就梦想! ——中国领先的IT技术网站 I. 开放平台发展状况 1.1 开放平台类型 1.2 主流开放平台事件回顾 1.3 开放平台的企业用户数量和使用情况 1.4 选择开放平台的考虑因素 1.5 主流开放平台的活跃程度 1.6 开放平台的盈利模式 II. 国内主流开放平台介绍 2.1 新浪开放平台 2.2 百度开放平台 2.3 淘宝开放平台 2.4 腾讯开放平台 2.5 360开放平台 2.6 盛大开放平台 2.7 主流开放平台对比分析结论 III. 51CTO专家观点 3.1 业内专家如何看开放平台

2012-08-19

进程通信.doc

进程通信 Linux进程间通信 一、进程间通信概述 进程通信有如下一些目的: A、数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间 B、共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。 C、通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。 D、资源共享:多个进程之间共享同样的资源。为了作到这一点,需要内核提供锁和同步机制。 E、进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。 Linux 进程间通信(IPC)以下以几部分发展而来: 早期UNIX进程间通信、基于System V进程间通信、基于Socket进程间通信和POSIX进程间通信。 UNIX进程间通信方式包括:管道、FIFO、信号。 System V进程间通信方式包括:System V消息队列、System V信号灯、System V共享内存、 POSIX进程间通信包括:posix消息队列、posix信号灯、posix共享内存。 现在linux使用的进程间通信方式: (1)管道(pipe)和有名管道(FIFO) (2)信号(signal) (3)消息队列 (4)共享内存 (5)信号量 (6)套接字(socket) 二、管道通信 普通的Linux shell都允许重定向,而重定向使用的就是管道。例如: ps | grep vsftpd .管道是单向的、先进先出的、无结构的、固定大小的字节流,它把一个进程的标准输出和另一个进程的标准输入连接在一起。写进程在管道的尾端写入数据,读进程在管道的道端读出数据。数据读出后将从管道中移走,其它读进程都不能再读到这些数据。管道提供了简单的流控制机制。进程试图读空管道时,在有数据写入管道前,进程将一直阻塞。同样,管道已经满时,进程再试图写管道,在其它进程从管道中移走数据之前,写进程将一直阻塞。管道主要用于不同进程间通信。 管道创建与关闭 创建一个简单的管道,可以使用系统调用pipe()。它接受一个参数,也就是一个包括两个整数的数组。如果系统调用成功,此数组将包括管道使用的两个文件描述符。创建一个管道之后,一般情况下进程将产生一个新的进程。 系统调用:pipe(); 原型:int pipe(int fd[2]); 返回值:如果系统调用成功,返回0。如果系统调用失败返回-1: errno=EMFILE&#40;没有空亲的文件描述符) EMFILE(系统文件表已满) EFAULT(fd数组无效) 注意:fd[0]用于读取管道,fd[1]用于写入管道。 图见附件 管道的创建 #include<unistd.h> #include<errno.h> #include<stdio.h> #include<stdlib.h> int main(&#41; { int pipe_fd[2]; if(pipe(pipe_fd)<0){ printf("pipe create error\n"); return -1; } else printf("pipe create success\n"); close(pipe_fd[0]); close(pipe_fd[1]); } 管道的读写 管道主要用于不同进程间通信。实际上,通常先创建一个管道,再通过fork函数创建一个子进程。图见附件。 子进程写入和父进程读的命名管道:图见附件 管道读写注意事项: 可以通过打开两个管道来创建一个双向的管道。但需要在子理程中正确地设置文件描述符。必须在系统调用fork()中调用pipe(),否则子进程将不会继承文件描述符。当使用半双工管道时,任何关联的进程都必须共享一个相关的祖先进程。因为管道存在于系统内核之中,所以任何不在创建管道的进程的祖先进程之中的进程都将无法寻址它。而在命名管道中却不是这样。管道实例见:pipe_rw.c #include<unistd.h> #include<memory.h> #include<errno.h> #include<stdio.h> #include<stdlib.h> int main() { int pipe_fd[2]; pid_t pid; char buf_r[100]; char* p_wbuf; int r_num; memset(buf_r,0,sizeof(buf_r));数组中的数据清0; if(pipe(pipe_fd)<0){ printf("pipe create error\n"); return -1; } if((pid=fork())==0){ printf("\n"); close(pipe_fd[1]); sleep(2); if((r_num=read(pipe_fd[0],buf_r,100))>0){ printf("%d numbers read from be pipe is %s\n",r_num,buf_r); } close(pipe_fd[0]); exit(0); }else if(pid>0){ close(pipe_fd[0]); if(write(pipe_fd[1],"Hello",5)!=-1) printf("parent write success!\n"); if(write(pipe_fd[1]," Pipe",5)!=-1) printf("parent wirte2 succes!\n"); close(pipe_fd[1]); sleep(3); waitpid(pid,NULL,0); exit(0); } }

2012-08-19

linux进程间通信.pdf

中嵌教育的PPT linux进程间通信 1. 进程间通信概述 2. 管道通信 3. 信号 4. 共享内存 5. 消息队列

2012-08-19

算法大全-面试题-链表-栈-二叉树-数据结构.docx

算法大全-面试题-链表-栈-二叉树-数据结构.docx 一、单链表 目录 1.单链表反转 2.找出单链表的倒数第4个元素 3.找出单链表的中间元素 4.删除无头单链表的一个节点 5.两个不交叉的有序链表的合并 6.有个二级单链表,其中每个元素都含有一个指向一个单链表的指针。写程序把这个二级链表称一级单链表。 7.单链表交换任意两个元素(不包括表头) 8.判断单链表是否有环?如何找到环的“起始”点?如何知道环的长度? 9.判断两个单链表是否相交 10.两个单链表相交,计算相交点 11.用链表模拟大整数加法运算 12.单链表排序 13.删除单链表中重复的元素

2012-08-17

华为笔试题大全(史上最齐全).doc

华为笔试题大全(史上最齐全).doc 华为 1.static有什么用途?(请至少说明两种) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用 2.引用与指针有什么区别? 1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象。 3) 不存在指向空值的引用,但是存在指向空值的指针。 3.描述实时系统的基本特性在特定时间内完成特定的任务,实时性与可靠性。 4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 全局变量储存在静态数据库,局部变量在堆栈。 5.什么是平衡二叉树? 左右子树都是平衡二叉树 且左右子树的深度差值的绝对值不大于1。

2012-08-17

C语言链表类面试题.docx

C语言链表类面试题.docx struct node { int data; struct node* next; }; 创建单链表的程序为: struct node* create(unsigned int n) { //创建长度为n的单链表 assert(n > 0); node* head; head = new node; head->next = NULL; cout << "请输入head节点的值(int型):"; cin >> head->data; if (n == 1) { return head; } node* p = head; for (unsigned int i = 1; i < n; i++) { node* tmp = new node; tmp->next = 0; cout << "请输入第" << i+1 << "个节点的值(int):"; cin >> tmp->data; p->next = tmp; p = tmp; } return head; } 问题1:链表逆置 思想为:head指针不断后移,指针反向即可,代码为: void reverse(node*& head) { if (head != NULL && head->next != NULL) { node* p = head; node* q = head->next; p->next = NULL; while (q->next != NULL) { head = q->next; q->next = p; p = q; q = head; } head->next = p; } return; }

2012-08-17

c语言链表大例题.doc

c语言链表大例题.doc #include #include #include #include #define TRUE 1 #define FALSE 0 #define INPUT 1 #define SHOW 2 #define REMOVE 3 #define INSERT 4 #define SORT 5 #define REVANGE 6 #define EXIT 7 typedef struct POINT { int x, y; //x和y分别存储点的横、纵坐标值 struct POINT *next; //next用以指向下一个同类实例(节点) }POINT; POINT *InputPoints(void); void showPointLink(POINT *head); void showOnePoint(POINT); void destroyLink(POINT *head); POINT *searchPrePoint(POINT *head, int x, int y); int removePoint(POINT **head); void sortPointByX(POINT *head); POINT *revangePointLink(POINT *head); void insertPoint(POINT **head); void showMenu(void); int selectedAction(void); void sayGoodBye(void); void sayGoodBye(void) { int i; printf("\n\n\n\n\n\n"); for(i = 0; i < 3; i++) { printf(" 欢迎您的使用!\n按任意键继续...\n"); getch(); printf(" 请您多提宝贵意见!\n按任意键继续...\n"); getch(); printf(" 祝您身体健康!\n按任意键继续...\n"); getch(); printf(" 谢谢使用!\n按任意键继续...\n"); getch(); printf(" 不送了!\n按任意键继续...\n"); getch(); printf(" 请您走好!\n按任意键继续...\n"); getch(); printf(" 不要忘了我哦!!!\n按任意键继续...\n"); getch(); printf(" 再见!\n按任意键继续...\n"); getch(); } } int selectedAction(void) { int choose = 0; while(choose 7) { showMenu(); choose = getche(); if(choose '7') choose = 0; else choose -= '0'; if(choose == 0) { printf("\n 输入错误!"); printf("\n 请重新选择(1-7)"); getch(); } } return choose; }

2012-08-17

22道数据结构算法面试题.doc

22道数据结构算法面试题.doc 还是蛮有用的

2012-08-15

计算机网络第五版]计算机网络第五版.pdf

计算机网络第五版]计算机网络第五版.pdf 版本太经典了

2012-08-15

unix操作系统设计.pdf

unix操作系统设计.pdf 讲解透彻,还是比较全的

2012-08-15

空空如也

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

TA关注的人

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