- 浏览: 231504 次
- 性别:
- 来自: 南京
最新评论
-
baby8117628:
vc下mp3 IDv1和IDV2的读取 -
gezexu:
你好,我按照你的步骤一步步进行但是安装libvorbis的时候 ...
linux如何搭建强大的FFMPEG环境 -
ini_always:
帅哥,转载也把格式做好点,另外出处也要注明一下吧。。。
MP3文件格式解析
文章列表
1. /*server.c:向共享内存中写入People*/
2. #include <stdio.h>
3. #include <sys/types.h>
4. #include <sys/ipc.h>
5. #include <sys/sem.h>
6.
7. int main()
8. {
9. struct People{
10. char name[10];
11. int ...
1. /*fifoserver.c:向FIFO中写入信息*/
2. #include <sys/types.h>
3. #include <sys/stat.h>
4. #include <errno.h>
5. #include <fcntl.h>
6. #define FIFO_SERVER "FIFO4"
7. main(int argc,char** argv)
8. {
9. int fd=0;
10. cha ...
C代码
1. /*msgserver.c*/
2.
3. #include <stdlib.h>
4. #include <string.h>
5. #include <errno.h>
6. #include <sys/types.h>
7. #include <sys/ipc.h>
8. #include <sys/msg.h>
9. #include <sys/stat.h>
10.
11. #def ...
mmap()及其相关系统调用
mmap()系统调用使得进程之间通过映射同一个普通文件实现共享内存。普通文件被映射到进程地址空间后,进程可以向访问普通内存一样对文件进行访问,不必再调用read(),write()等操作。
注:实际上,mmap()系统调用并不是完全为了用于共享内存而设计的。它本身提供了不同于一般对普通文件的访问方式,进程可以像读写内存一样对普通文件的操作。而Posix或系统V的共享内存IPC则纯粹用于共享目的,当然mmap()实现共享内存也是其主要应用之一。
1、mmap()系统调用形式如下:
void* mmap ( void * addr , size_t len , ...
本文讲述在编写C程序代码的常用优化办法,分为I/O篇,内存篇,算法篇,MMX汇编篇。
一.I/O篇
如果有文件读写的话,那么对文件的访问将是影响程序运行速度的一大因素。
提高文件访问速度的主要办法有两个:一是采用内存 ...
经常不用就容易忘掉,好记性不如烂笔头。记录在下面:
当无法列出传递函数的所有实参的类型和数目时,可用省略号指定参数表
void foo(...);
void foo(parm_list,...);
2:函数参数的传递原理
函数参数是以数据结构:栈的形 ...
很好的一个技术博客
http://hi.baidu.com/gamedot
试题1:请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1
int checkCPU( )
{
{
union w
{
int a;
char b;
} c;
c.a = 1;
return(c.b ==1);
}
}
剖析:
嵌入式系统开发者应该对Little-endian和Big-endian模式非常了解。采用Li ...
网络编程必备的知识点:大端和小端
因为现行的计算机都是以八位一个字节为存储单位,那么一个16位的整数,也就是C语言中的short,在内存中可能有两种存储顺序big-
endian和litte-endian.考虑一个short整数0x3132(0x32是低位,0x31是高位),把它赋值给一个short变量,那么它在内存中的存储可
能有如下两种情况:
大端字节(Big-endian):
short变量地址
0x1000 0x1001
___________________________________
| ...
Android IPC 通讯机制源码分析
----Albertchen
Binder通信简介:
Linux系统中进程间通信的方式有:socket, named pipe,message queque, signal,share memory。Java系统中的进程间通信方式有socket, named pipe等,android应用程序理所当然可以应用JAVA的IPC机制实现进程间的通信,但我查看android的源码,在同一终端上的应用软件的通信几乎看不到这些IPC通信方式,取而代之的是Binder通信。Google为什么要采用这种方式呢,这取决于Binder通信方式的高效率。 Bind ...
- 2009-12-04 13:47
- 浏览 3926
- 评论(0)
DBus有两种API接口,一种是直接使用DBUS的 low-level API,一种是使用Binding,Bindings有不同的类型,有PERL Binding、PYTHON Binding、GLIB Binding等。这里主要关注使用GLIB binding。和low-level API不同的是,GLIB binding则能够完成GLIB OBJECT的本地事件(native signal)与DBus事件的绑定,下面描述使用DBUS,Signal事件发送和接收的基本过程。
1、Signal被发送到DBus Daemon,这个过程如果使用low-level API,这个过程需要程序直接完成; ...
- 2009-12-03 15:22
- 浏览 2308
- 评论(0)
集成测试的时候发现一个程序在持续的运行过程中有缓慢的内存增长。用ValGrind来查并没有太多的发现。询问开发人员的时候,他说GTK的内存好象都有一些泄露,网上有文曰
If GtkFoo isn't a toplevel window, then
foo = gtk_foo_new ();
gtk_widget_destroy (foo);
is a memory leak。
这个我是不相信的,于是有了两个内存泄露的问题需要解释。
1、我们的程序为什么内存泄露?在放弃了工具帮忙后,逐段代码注释,注释后并细心观察内存半个小时后记录内存起伏情况。最后发现我们的代码确实有问题 ...
- 2009-12-03 15:19
- 浏览 1719
- 评论(0)
Linux的脚本Bash中find和grep功能很强大,一个是对目录文件通过名字和文件属性来确定所需寻找的文件,列为一个是对文件的内容来匹配寻找文件内的信息。功能相对来说比较单一些,两者组合起来用,是很强劲的。
--------------------------------------------------------------------------
find . -name -type ... -print
find / -name -type ... -print
*find . -name "*.c" -print
*find /opt ! -type d ...
- 2009-12-03 15:01
- 浏览 1758
- 评论(0)
在C语言代码中头文件中,充斥着下面的代码片段:
__BEGIN_DECLS
.....
.....
__END_DECLS
#if defined(__cplusplus)
#define __BEGIN_DECLS extern "C" {
#define __END_DECLS }
#else
#define __BEGIN_DECLS
#define __END_DECLS
扩充C语言在编译的时候按照C++编译器进行统一处理,使得C++代码能 ...
- 2009-12-03 14:58
- 浏览 4360
- 评论(0)
终于装上了,把过程记录一下
首先要安装各种解码器
1、lame
lame-3.97.tar.gz
Url:http://sourceforge.net/project/showfiles.php?group_id=290&package_id=309
安装方法如下:
Java代码
1. tar -zxvf lame-3.97.tar.gz
2. cd lame-3.97
3. ./configure --enable-shared --prefix=/usr
4. make
5. make install
tar -zxvf lam ...
- 2009-11-25 16:34
- 浏览 2947
- 评论(1)