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

首页 / 操作系统 / Linux

Unix下C程序的内存布局

Unix下C程序的内存布局

从<Unix高级环境编程>中总结按照高位排序:1.栈,自动变量存储,每次函数调用的信息如函数结束后返回到的地址,调用者的环境信息.新调用的函数会为其自动临时变量分配空间.这就是递归函数的重点,每一次递归函数自我调用,一个新的栈帧会创建,因此他们的数据不会互相干涉到.2.堆,程序运行时动态分配的数据会被存储在此.3.未初始化数据段,通常被称为"bss"段,包含在程序中未被显式地初始化的全局变量,在程序被执行前,该段中的数据被内核初始化为数字0或者...
学习Unix和C语言

学习Unix和C语言

1、学习Unix和C语言,先向大家推荐一本书《Unix高级环境编程》(下载见 http://www.linuxidc.net/thread-2063-1-1.html),这本书是学习Unix和C的经典之作,尽量把书中提到的系统调用都写个练习程序,先感性的认识一下Linux系统提供给用户的系统调用都是干什么的,怎么用。系统调用是内核提供给用户的功能用以申请内核服务,对于Linux内核的学习,从系统调用入手是个不错的办法。学习过程可以参看Linux的联机帮助,...
Linux高端内存映射(上)

Linux高端内存映射(上)

高端内存概述在32位的系统上,内核占有从第3GB~第4GB的线性地址空间,共1GB大小,内核将其中的前896MB与物理内存的0~896MB进行直接映射,即线性映射,将剩余的128M线性地址空间作为访问高于896M的内存的一个窗口。引入高端内存映射这样一个概念的主要原因就是我们所安装的内存大于1G时,内核的1G线性地址空间无法建立一个完全的直接映射来触及整个物理内存空间,而对于80x86开启PAE的情况下,允许的最大物理内存可达到64G,因此内核将自己的最后...
Linux高端内存映射(中)

Linux高端内存映射(中)

临时内核映射临时内核映射和永久内核映射相比,其最大的特点就是不会阻塞请求映射页框的进程,因此临时内核映射请求可以发生在中断和可延迟函数中。系统中的每个CPU都有自己的临时内核映射窗口,根据不同的需求,选择不同的窗口来创建映射,这些窗口都以枚举类型定义在km_type中enumkm_type{ KMAP_D(0)KM_BOUNCE_READ, KMAP_D(1)KM_SKB_SUNRPC_DATA, KMAP_D(2)KM_SKB_DATA_SOFTIRQ,...
Android调用第三方软件打开下载的附件

Android调用第三方软件打开下载的附件

在做我们产品的时候,需要下载附件, 同时下载附件需要打开, 通过查阅一些资料发现,Android对这支持做的非常好,通过anction ,加minitype ,加数据源,就能找到合适的软件进行打开你的下载的附件,下面是我整理的一个的java类,希望对你有帮助! /**@projectC6Client*@packagecom.jh.c6.util*@fileCallOtherOpeanFile.java*@version1.0*@authorliaoyp*@...
Android开发教程:Android条码扫描【附源码】

Android开发教程:Android条码扫描【附源码】

条码扫描,相信大家应该都用过,像比较火的“我查查”,“淘宝”之类的软件都应用到了条码扫描工具,在Android上比较著名的解码库是ZXing,但这里我们不介绍ZXing,我们介绍iPhone上的一个解码库ZBar,两个库比较了一下,ZXing对于解码比较短的条码,二维码有优势,但如果条码很长的话,还是ZBar比较好,我特意拿快递单上的条码进行扫描,ZXing识别不了,但ZBar可以很快解码,但ZBar也有缺点,因为ZBar是用C语言写的,所以有的手机扫描的...
Linux用户态和内核态之间的交互

Linux用户态和内核态之间的交互

Netlink 是一种在内核与用户应用间进行双向数据传输的非常好的方式,用户态应用使用标准的 socket API 就可以使用 netlink 提供的强大功能,内核态需要使用专门的内核 API 来使用 netlink。用户态使用netlink:用户态应用使用标准的socket APIs, socket(), bind(), sendmsg(), recvmsg() 和 close() 就能很容易地使用 netlink socket。注意,使用 netlin...
使用 Python RQ 的 Python 执行后台任务

使用 Python RQ 的 Python 执行后台任务

目录安装 RQ 将任务队列化 在 Heroku 上发布 调试 扩展阅读 RQ (Redis Queue) 可以让 Heroku 平台上的 Python 应用轻松的执行后台任务,RQ 使用 Redis 作为队列存储,因此要使用 RQ 之前必须配置应用程序然后启动并运行一个工作进程。安装 RQ可使用 pip 命令来安装 RQ 以及其依赖的库1$ pip install rq 2Downloading/unpacking rq 3Downloading rq-0...
是时候考虑用 Node.js 做点东西了

是时候考虑用 Node.js 做点东西了

除非你是多年生活在石器时代,否则你不会没听说过 Node.js,一套用来编写高性能网络服务器的JavaScript平台。如果你跟我一样是一个 .NET 工程师,主要开发 Windows 下的各种应用,那么在听到 Node.js 介绍时你的反应可能是:哦,这不错,然后继续工作。但我想说的是,现在是时候用 Node.js 来开发应用了,它可以简化很多现有工具所作的工作,而且 Node.js 在 Windows 下也已经足够成熟。一个很好的例子就是 iisnod...
Android教程:开机自动执行Shell脚本

Android教程:开机自动执行Shell脚本

在应用程序启动之前,往往需要在Android启动过程中去对系统做一些设置,如修改某些文件夹的属主和文件的权限,本文实现在init.rc中调用shell脚本,而所有对系统资源的修改和配置都在此shell脚本中实现。1、在system/core/rootdir/etc/init.djstava.sh脚本文件,以开机获取IP地址为例,脚本内容可如下#! /system/bin/shifconfig eth0 192.168.18.200 netmask 255....
Android教程:wifi热点问题

Android教程:wifi热点问题

现在很多移动设备都提供wifi hostpot功能,使用方便,也省下了原来无线路由器的成本。wifi和wifi hotspot功能是互斥的,即在同一时间里,你只能用其中一种功能。在Android较新版本(2.2之后)中已经实现,本文实现在命令行模式下完成wifi hotspot功能的启动,并简单介绍其中涉及到的相关工具。 0、确保eth0可以访问网络1、修改framework/base/core/res/res/values/config.xml<!...
<< 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 >>