天行健,君子以自强不息!
发布时间:2012-12-24 11:08:55
Linux对中文的支持不是很好,也不像Windows样,会对文件名,文件内容做字符集的自动转换。例如,将Windows下的文件复制到Linux下,会出现一堆的乱码,这时,就要用到linux的一些字符集转换工具来处理。1. 批量文件名字符集转换工具 -- convmv下载链接:http://download.chinaunix.net/download/0002000/1760.shtmlconvmv是一个更改文件名编码方式的工具,它甚而可以进行目录下文件名的批量转换。例如,将/home目录下原来文件名是gbk编码方式的全部改为utf-8格式的,使用命令如下:$./convmv -f gbk -......【阅读全文】
发布时间:2012-12-23 21:51:00
用信号量实现的线程安全队列。简单有用的示例程序,比起互斥量的实现在多线程时效率更好。cir_queue.h/* * \File * cir_queue.h * \Brief * circular queue */#ifndef __CIR_QUEUE_H__#define __CIR_QUEUE_H__#define QUE_SIZE 8typedef int DataType;typedef struct cir_queue_t{ DataType data[QUE_SIZE]; int f......【阅读全文】
发布时间:2012-12-23 21:03:18
用互斥量实现的线程安全循环队列。只是一个示例实现,不大能用于实际编程。因为当真正多线程时,会因为资源竞争而等待,导致队列的效率极低。更有效的方式是使用信号量。更多的不说了,直接看代码吧。cir_queue.h/* * \File * cir_queue.h * \Brief * circular queue */#ifndef __CIR_QUEUE_H__#define __CIR_QUEUE_H__#define QUE_SIZE 8typedef int DataType;typedef struct cir_queue_t{&n......【阅读全文】
发布时间:2012-12-21 11:08:18
很简单的一个FIFO应用示例,两个进程间,使用FIFO进行通信.闲言少述,直接上文:my $cmd_ff = "./ffmpeg -i ....";my $uuid = `uuidgen`; // 生成不重名FIFO的名称chomp $uuid;system("mkfifo $uuid"); // 创建FIFOmy $pid_ffmpeg = fork; // 创建进程if (0 == $pid_ffmpeg){&......【阅读全文】
发布时间:2012-12-18 10:22:41
一、简介共享内存为在多个进程之间共享和传递数据提供了一种有效的方式。但它本身并未提供同步机制。在实际编程中,可以使用 信号量, 传递消息(使用管道或IPC消息), 生成信号, 条件变量,等方法来提供读写之间的有效的同步机制。本例程序使用信号量进行同步,主要是因为它方便,使用广泛,且独立于进程。本例程序实现了,生产者进程: 每次读取YUV输入文件的一帧, 然后将其写到共享内存中。消费者进程: 每次从共享内存中读到一帧, 处理后, 将其写到输出文件。两个进程间使用信号量来保证同步处理每一帧。......【阅读全文】