Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

浅谈Android中Callback(回调)的使用

浅谈Android中Callback(回调)的使用

今天Android项目的Bug基本修改完成了,于是就对自己还未了解的回调函数进行了学习。就得到的结果来看,个人觉得回调就像多态一样,比如Boss叫员工去吃饭,但每个员工可能吃不同的食物。只不过,回调是对接口而言。简单来说就是,A对象调用了自己的方法a,方法a接收的参数是B接口的实例b,而在方法a中将执行接口B中的方法c。这样解释可能有点绕不过来,下面我们来看一个例子。比如宿舍的某个同学设置了一个闹铃,闹铃响时全宿舍的人都能听到,但是张三比较勤奋,听到铃声后...
Linux I/O Block--块设备的表示

Linux I/O Block--块设备的表示

块设备的特点是其平均访问时间较长,因此为了提高块设备的访问效率,Linux内核用了很多的笔墨来设计和块设备相关的部分,这样一来,从代码的角度来看,访问一个文件的过程变得尤其的漫长……整个路径包含的过程基本可以概括为虚拟文件系统-->块设备实际文件系统-->通用块层-->I/O scheduler-->块设备驱动程序。为了提高块设备的访问效率,内核主要是在两个方面下功夫:1.引入缓存,当用户空间要访问文件时...
用C语言求最大子序列

用C语言求最大子序列

给定一整数序列A1, A2,... An (可能有负数),求A1~An的一个子序列Ai~Aj,使得Ai到Aj的和最大例如:整数序列-2, 11, -4, 13, -5, 2, -5, -3, 12, -9的最大子序列的和为21。对于这个问题,最简单也是最容易想到的那就是穷举所有子序列的方法。利用三重循环,依次求出所有子序列的和然后取最大的那个。当然算法复杂度会达到O(n^3)。显然这种方法不是最优的,下面给出一个算法复杂度为O(n)的线性算法实现,算法的来...
使用Qt Creator 2.60编写C/C++程序

使用Qt Creator 2.60编写C/C++程序

使用Qt Creator 2.60编写C/C++程序(Windows7-64bit和Ubuntu12.10-64bit)。一、Windows7-64bit +MinGW:从官网下载qt creator安装,如果没有安装qt(注意qt和qt creator不是一回事)的话是没办法直接使用的,因为qt creator默认使用qmake来构建项目,而qmake是qt的一部分,由于qt太大了,不想安装,就使用cmake来进行构建,安装好之后配置一下:依次选择:工具...
APUE习题[实现dup2函数功能,不使用fcntl]

APUE习题[实现dup2函数功能,不使用fcntl]

学习,记录。int dup2(int oldhandle, int newhandle);函数功能:复制文件句柄,newhandle指定的dup2和dup的区别就是可以用newfd参数指定新描述符的数值,如果newfd已经打开,则先将其关闭。如果newfd等于oldfd,则dup2返回newfd, 而不关闭它。dup2函数返回的新文件描述符同样与参数oldfd共享同一文件表项。关键部分实现思路:先close关闭需要复制到的文件描述符newdup。连续dup...
UNIX系统编程小结(一)------文件I/O

UNIX系统编程小结(一)------文件I/O

基本看完了《unix/linux编程实践教程》,实现了几个小项目,觉得很不过瘾,书中对很多system call的细节和原理都没讲。在尝试看linux内核分析的书时发现很多困难,所以拿起apue,继续打基础。读着读着,对apue上瘾了。这是题外话,就说这么多。相关阅读:UNIX系统编程小结(二)------文件和目录 http://www.linuxidc.com/Linux/2012-12/75689.htmUnix/Linux编程实践教程【高清PDF中...
UNIX系统编程小结(二)------文件和目录

UNIX系统编程小结(二)------文件和目录

一.对linux的安全机制的一点感悟各种权限,read,write,execute,set-user-ID,set-group-ID,sticky bit,对目录的权限,对文件的权限,用于保证系统安全的各种组合技,各种经典。比如,如果我们想unlink一个文件,就必须拥有该文件所在目录的write与execute的权限。二.两个小例子1.当文件有hole时,cp命令会同时拷贝这些hole为""。这里是一个实现了拷贝时跳过文件hole的程序。ps:我用的bu...
《Unix/Linux编程实践教程》之Shell编程一

《Unix/Linux编程实践教程》之Shell编程一

《Unix/Linux编程实践教程》是一本学习系统编程非常好的入门教材。本书第8章开始介绍进程的相关概念。包括相关的命令如ps,以及相关的系统调用如fork,wait等。在本章中,作者通过一步步搭建自己的Shell来讲解unix的进程模型。相关阅读:《Unix/Linux编程实践教程》之Shell编程一 http://www.linuxidc.com/Linux/2012-12/75690.htm《Unix/Linux编程实践教程》之Shell编程二 ht...
《Unix/Linux编程实践教程》之Shell编程二

《Unix/Linux编程实践教程》之Shell编程二

《Unix/Linux编程实践教程》第九章将第八章所编的shell做进一步的完善,包括:1)加入命令行解析,方便用户在一行里输完命令和所有参数2)加入if..else..控制语句3)加入局部变量和环境变量对于上章后面的练习题(解决SIGINT信号杀死shell的BUG),本章也给出了解决方案,简单流程如下:在shell中忽略SIGINT和SIGQUIT,在子进程中对恢复信号的默认操作。相关阅读:《Unix/Linux编程实践教程》之Shell编程一 htt...
《Unix/Linux编程实践教程》之管道

《Unix/Linux编程实践教程》之管道

管道式内核中的一个单向的数据通道,用来连接一个进程的输出和另一个进程的输入。管道有一个读取端和一个写入端。创建管道的系统调用为 pipe ,函数原型是 result=pipe(int array[2]); 调用 pipe 来创建管道并将其两端连接到两个文件描述符。 array[0] 为读数据端的文件描述符, array[1] 是写数据段端的文件描述符。可以将 fork 和 pipe 结合起来写个小程序, fork 出来的子进程每 5 秒向管道里写数据,父进...
C中为什么要用内联函数

C中为什么要用内联函数

inline 这个名称可以反映出它的工作方式,函数会在它所调用的位置上展开.这么做可以消除函数调用和返回所带来的开销(寄存器存储和恢复),而且,编译器会把调用函数的代码和函数本身放在一起进行优化,所以有进一步优化代码的可能.不过这么做是有代价的,代码会变长,这也就意味着占用更多的内存空间或者占用更多的指令缓存.内核开发者通常把那些对时间要求比较高,而本身长度又比较短的函数定义成内联函数.内联函数必须在使用之前就定义好,否则编译器就没法把这个函数展开,实践中...
Python对象简析

Python对象简析

1.所有的Python 对象都包括三个特性:(1)身份:每一个对象都有一个唯一的身份标识自己,任何对象的身份可以使用内建函数id()来得到.这个值可以被认为是该对象的内存地址.(2)类型:对象的类型决定了该对象可以保存什么类型的值,可以进行什么样的操作,以及遵循什么样的规则。您可以用内建函数type()查看Python 对象的类型。(3)值:对象表示的数据项注:如果对象支持更新操作,那么它的值就可以改变,否则它的值是可读的.2.类就是类型,实例是对应类型的...
<< 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 >>