易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux声音设备编程实例

由于这些文件不是普通的文件,所以我们不能用
ANSI C
(标准
C
)的
fopen

fclose
等来操作文件,而应该使用系统文件
I/O
处理函数(
open

read

write

lseek

close
)来处理这些设备文件。
ioctl
()或许是
Linux
下最庞杂的函数,它可以控制各种文件的属性,在
Linux
声音设备编程中,最重要的就是使用此函数正确设置必要的参数。
  下面我们举两个实际的例子来说明如何实现
Linux
下的声音编程。由于此类编程涉及到系统设备的读写,所以,很多时候需要你有
root
权限,如果你将下面的例子编译后不能正确执行,那么,首先请你检查是否是因为没有操纵某个设备的权限。
1.
对内部扬声器编程
  内部扬声器是控制台的一部分,所以它对应的设备文件为
/dev/console
。变量
KIOCSOUND
在头文件
/usr /include /linux /kd.h
中声明,
ioctl
函数使用它可以来控制扬声器的发声,使用规则为:
  
ioctl ( fd, KIOCSOUND, (int) tone);
  
fd
为文件设备号,
tone
是音频值。当
tone

0
时,终止发声。必须一提的是它所理解的音频和我们平常以为的音频是不同的,由于计算机主板定时器的时钟频率为
1.19MHZ
,所以要进行正确的发声,必须进行如下的转换:
  扬声器音频值
=1190000/
我们期望的音频值。
  扬声器发声时间的长短我们通过函数
usleep

unsigned long usec
)来控制。它是在头文件
/usr /include /unistd.h
中定义的,让程序睡眠
usec
微秒。下面即是让扬声器按指定的长度和音频发声的程序的完整清单:

#include
< fcntl.h >
#include
< stdio.h >
#include
< stdlib.h >
#include
< string.h >
#include
< unistd.h >
#include
< sys/ioctl.h >
#include
< sys/types.h >
#include
< linux/kd.h >
 
/*
设定默认值 */
#define
DEFAULT_FREQ 440 /*
设定一个合适的频率 */
#define
DEFAULT_LENGTH 200 /* 200
微秒,发声的长度是以微秒为单位的*/
#define
DEFAULT_REPS 1 /*
默认不重复发声 */
#define
DEFAULT_DELAY 100 /*
同样以微秒为单位*/
 
/*
定义一个结构,存储所需的数据*/
typedef
struct
{
    
int
freq; /*
我们期望输出的频率,单位为Hz */
    


相关文档:

Linux from Scratch

1. Download all packet and patchs    Done
2. To be involved in the mail list
3. Check Host Requirements                    Done
还学习了 cut 显示某行的指定field ,head 显示前几行,readlin ......

linux下 jdk配置

1.java.sun.com/j2se/1.4.2/download.html">http://java.sun.com/j2se/1.4.2/download.html 下载一个Linux Platform的JDK,建议下载RPM自解压格式的(RPM in self-extracting file,j2sdk-1_4_2_06-linux-i586-rpm.bin); 
2. 上载到Linux服务器上,在shell下执行命令:
[root@ ......

linux ps 命令 STAT域

STAT(该行程的状态)
D: 不可用信号中断的睡眠状态
R: 正在执行或处于执行队列中
S: 可以用信号中断的睡眠状态
T: 暂停执行 
Z: 僵死状态
------------------------------------
W: 没有足够的记忆体分页可分配 
<: 高优先序的行程 
N: 低优先序的行程&nbs ......

linux 内核构成

      和其他操作系统一样,Linux包含进程调度与进程间通信(IPC)、内存管理(MMU)、虚拟文件系统(VFS)、网络接口等,下图给出了Linux的组成及其关系:
Linux内核源代码包括多个目录:
  (1)arch:包括硬件特定的内核代码,如arm、mips、i386等;
  (2)drivers:包含硬件驱动代码,如cha ......

linux 设备驱动编程

目 录
驱动

I/O端口

from smth

基本结构

驱动程序

具体实现


PCI

loopback

Sis 900

ISA总线DMA的实现


驱动
    Linux系统支持三种类型的硬件设备:字符设备、块设
< type="text/javascript">< type="text/jav ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号