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

首页 / 操作系统 / Linux

Asterisk概述和代码分析

Asterisk概述和代码分析

1 Asterisk项目概述Asterisk是一个开源的软件包,通常运行在Linux操作系统平台上。Asterisk可以用三种协议来实现VoIP,同时可以与目前电话使用的标准硬件进行交互通信,Asterisk在实现VoIP时,不需要任何附加硬件,本文所采用的也是这种使用方式。但是,如果企业没有与VoIP语音网关运营商建立合作关系,想要自己构建这样的一个平台,那么要和数字电话设备与模拟电话设备进行交互通信,Asterisk需要一个PCI硬件的支持,这个硬件生...
Python扩展问题”unable to find vcvarsall.bat“的解决

Python扩展问题”unable to find vcvarsall.bat“的解决

在用C给python3.写扩展时遇到如下问题:写好*module.c和setup.py文件后执行python setup.py build报unable to find vcvarsall.bat我机器上有vs2005和vc6,但是还是报错。搜索很多资料:网上提供解决办法如下:下载mingw环境,添加环境变量使用python setup.py build –compiler=mingw32这个办法感觉只是绕过了这个问题,并不是真正解决问题,而且我系统中py...
Linux内核学习笔记

Linux内核学习笔记

内核模块是Linux内核向外部提供的一个插口,其全称为动态可加载内核模块(Loadable Kernel Module,LKM),我们简称为模块。Linux内核之所以提供模块机制,是因为它本身是一个单内核(monolithic kernel)。单内核的最大优点是效率高,因为所有的内容都集成在一起,但其缺点是可扩展性和可维护性相对较差,模块机制就是为了弥补这一缺陷。一、 什么是模块模块是具有独立功能的程序,它可以被单独编译,但不能独立运行。它在运行时被链接到...
Python 二进制读写

Python 二进制读写

总的感觉,python本身并没有对二进制进行支持,不过提供了一个模块来弥补,就是struct模块。python没有二进制类型,但可以存储二进制类型的数据,就是用string字符串类型来存储二进制数据,这也没关系,因为string是以1个字节为单位的。import structa=12.34#将a变为二进制bytes=struct.pack("i",a)此时bytes就是一个string字符串,字符串按字节同a的二进制存储内容相同。再进行反操作现有二进制数据...
U-Boot布局及初学的一些文摘

U-Boot布局及初学的一些文摘

下例:第一阶段程序流程图SVC模式切换|针对特定SOC的设置|lowlevel_init---->I/Dcache, MMU,sdram|relocate|进入引导第二阶段uboot1.1.6ARCH=arm920tCPU=S3C2410编译后生成的二进制文件,也就是机器码,这里只是该文件的前16行,不过第一阶段引导的关键代码都在这里了,首先是机器加电PC=0,而这部分代码会被加载到steppingstone里执行。存储方式:高位高字节0000000...
用Java遍历所有当前运行环境

用Java遍历所有当前运行环境

Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。一个属性列表可包含另一个属性列表作为它的“默认值”;如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表。因为 Properties 继承于 Hashtable,所以可对 Properties 对象应用 put 和 putAll 方法。但不建议使用这两个方法,因为它们允许调用者插入其键或值不是 String 的项...
S3C2440驱动篇—Linux平台设备驱动

S3C2440驱动篇—Linux平台设备驱动

在设备驱动程序中经常会见到和platform相关的字段,分布在驱动程序的多个角落,这也是2.6内核中比较重要的一种机制,把它原理弄懂,对以后分析驱动程序很有帮助:在linux2.6设备模型中,关心总线,设备,驱动这三个实体,总线将设备和驱动绑定,在系统每注册一个设备的时候,会寻找与之匹配的驱动。相反,在系统每注册一个驱动的时候,寻找与之匹配的设备,匹配是由总线来完成的。一个现实的Linux 设备和驱动通常都需要挂接在一种总线上,对于本身依附于PCI、USB...
让你费解的函数原型 - Linux 下的 signal - 函数指针

让你费解的函数原型 - Linux 下的 signal - 函数指针

做Linux下软件开发的对signal函数应该不会陌生,但是你看过它的函数原型吗?如果你看了,你懂它了吗。要是有疑问,来看看我的解释吧。 先说说signal函数是干嘛的。signal函数用于向系统注册处理某一信号的函数,说白了,就是告诉系统,当某个信号发生了,执行这个函数。当signal被调用时,它返回调用前处理同意信号的函数的指针。在signal.h头文件中,它的声明如下:void(*signal(intsig_num,void(*handler)(in...
Linux基础:函数指针的强制类型转换

Linux基础:函数指针的强制类型转换

先给出结论:函数指针是可以通过强制类型转换而指向具有不同函数签名的函数的,但是,转换后,该函数指针没办法正确调用所指向的函数----不能给函数传递参数。 下文给出得出这个结论的小故事。 前几天的任务要求写一个Logger类,该类对外提供一些静态的方法,但不生成对象。该类的主要作用是用来输出消息,不同的是可以由用户选择输出到控制台或是磁盘文件,当然还可以不输出或是两个都输出。 我的想法是对不同的输出,由不同的函数来执行,这样我通过定义一个函数指针,在用...
多线程的同步 critical section 类的用法与解析

多线程的同步 critical section 类的用法与解析

不论是硬件临界资源,还是软件临界资源,多个线程必须互斥地对它进行访问。每个线程中访问临界资源的那段代码称为临界区(Critical Section)。 每个线程中访问临界资源的那段程序称为临界区(Critical Section)(临界资源是一次仅允许一个线程使用的共享资源)。每次只准许一个线程进入临界区,进入后不允许其他线程进入。不论是硬件临界资源,还是软件临界资源,多个线程必须互斥地对它进行访问。 多个线程中涉及到同一个临界资源的临界区称为相关...
<< 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 >>