上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 28 下一页
  2014年4月8日
摘要: 最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。 于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。 后记,看完发现这篇文章和《Linux环境下的C编程指南》的makefile一章所讲述的惊人的相似,只是这篇文章从一个实例切入,在有些地方比较好理解。能让人看懂就是好文章。 跟我一起写 Makefile陈皓 (CSDN)概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的 阅读全文
posted @ 2014-04-08 10:26 bitbit 阅读(517) 评论(0) 推荐(0)
摘要: 1 互斥锁 互斥锁用来保证一段时间内只有一个线程在执行一段代码。必要性显而易见:假设各个线程向同一个文件顺序写入数据,最后得到的结果一定是灾难性的。 先看下面一段代码。这是一个读/写程序,它们公用一个缓冲区,并且假定一个缓冲区只能保存一条信息。即缓冲区只有两个状态:有信息或没有信息。 void reader_function ( void ); void writer_function ( void ); char buffer; int buffer_has_item=0; pthread_mutex_t mutex; struct timespec delay; void... 阅读全文
posted @ 2014-04-08 10:18 bitbit 阅读(1461) 评论(0) 推荐(0)
摘要: 无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或make install.利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系。而且如此多的源文件,如果每次都要键入gcc命令进行编译的话,那对程序员来说简直就是一场灾难。而make工具则可自动完成编译工作,并且可以只对程序员在上次编译后修改过的部分进行编译。因此,有效的利用make和makefile工具可以大大. 阅读全文
posted @ 2014-04-08 10:16 bitbit 阅读(9765) 评论(0) 推荐(0)
摘要: 编解码学习笔记(一):基本概念媒体业务是网络的主要业务之间。尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析、应用开发、释放license收费等等。最近因为项目的关系,需要理清媒体的codec,比较搞的是,在豆丁网上看运营商的规范 标准,同一运营商同样的业务在不同文档中不同的要求,而且有些要求就我看来应当是历史的延续,也就是现在已经很少采用了。所以豆丁上看不出所以然,从 wiki上查。中文的wiki信息量有限,很短,而wiki的英文内容内多,删减版也减肥得太过。我在网上还看到一个山寨的中文wiki,长得很像,红色的,叫“天下维客”。wiki的 阅读全文
posted @ 2014-04-08 09:41 bitbit 阅读(78547) 评论(5) 推荐(13)
  2014年4月7日
摘要: 这是一份优秀的类文件,好多的地方值得我们学习,具体在多线程,事件,自定义消息,类的封装方面等等。Remon提供的串口类网址为: http://codeguru.earthweb.com/network/serialport.shtml,由于已经运行十几年了,原文的问答部分列出来这么多年来的问题,经过网友们的总结,补充和修改原来代码后,整理出一份相对比较完美的代码。此外还附带一份小项目的源代码,它超越了串口助手,给人一种耳目一新的感觉。亮点如下:1. 它解决了串口关闭时出现死锁不响应问题,可以直接用到开发的项目上。2. 并且是扩展了的串口助手,具有通信协议编辑和使用功能,3. 软件升级检测,值得 阅读全文
posted @ 2014-04-07 15:39 bitbit 阅读(2870) 评论(0) 推荐(0)
摘要: 前几篇大概介绍了串口的相关几个结构,了解后开始进入Windows API的基本操作1.CreateFile创建打开串口用指定的方式打开指定的串口,注意文件在Windows的概念很广泛,包括:文件、通讯设备、命名管道、邮件、磁盘和控制台。我们前面声明了句柄/*串口句柄*/HANDLEm_hComm;那么接下来可以这样创建:m_hCom = CreateFile( "COM1", //串口1 GENERIC_READ | GENERIC_WRITE, //指定可以对串口进行读写操作 0, //表示串口为独占打开 NULL, OPEN_EXISTING, //表示当指定串口不存在 阅读全文
posted @ 2014-04-07 15:28 bitbit 阅读(1237) 评论(0) 推荐(0)
摘要: 上一篇看了Overlapped IO模型后,接下来看剩下两个重要结构:2.COMMTIMEOUTS结构 超时设置COMMTIMEOUTS:COMMTIMEOUTS主要用于串口超时参数设置。COMMTIMEOUTS结构如下: typedef struct _COMMTIMEOUTS { DWORD ReadIntervalTimeout; //读间隔超时 DWORD ReadTotalTimeoutMultiplier;//读时间系数 DWORD ReadTotalTimeoutConstant;//读时间常量 DWORD WriteTotalTimeoutMultiplier;//... 阅读全文
posted @ 2014-04-07 15:26 bitbit 阅读(1096) 评论(0) 推荐(0)
摘要: 第一篇初步了解串口的大致运作,接下来我们看基本操作先看串口操作的数据结构:串口操作有几个比较重要的Struct1.Overlapped I/O 异步I/O模型异步I/O和同步I/O不同,同步I/O时,程序被挂起,一直到I/O处理完,程序才能获得控制。异步I/O,调用一个函数告诉OS,进行I/O操作,不等I/O结束就立即返回,继续程序执行,操作系统完成I/O之后,通知消息给你。Overlapped I/O只是一种模型,它可以由内核对象(hand),事件内核对象(hEvent), 异步过程调用(apcs) 和完成端口(I/O completion)实现。Overlapped数据结构:typedef 阅读全文
posted @ 2014-04-07 15:24 bitbit 阅读(4458) 评论(0) 推荐(0)
摘要: 串口是常用的计算机与外部串行设备之间的数据传输通道,由于串行通信方便易行,所以应用广泛。本文以VC++为平台进行串口通信编程串口通讯在VC++下实现方式有很多,控件自然是最简单话的方式了,但由于控件只支持对话框程序,有些场合又不需要对话框,所以用Windows API实现是比较好的方式串行通信的操作方式1.同步方式同步方式中,读串口的函数试图在串口的接收缓冲区中读取规定数目的数据,直到规定数目的数据全部被读出或设定的超时时间已到时才返回[cpp] view plaincopyprint?COMMTIMEOUTStimeOver;//COMMTIMEOUTS结构用于设置读写函数的等待时间。 me 阅读全文
posted @ 2014-04-07 15:23 bitbit 阅读(1057) 评论(0) 推荐(0)
摘要: 随笔 - 262 文章 - 0 评论 - 531 博客园首页新随笔联系管理订阅Overlapped I/O模型深入分析(转)简述:Overlapped I/O也称Asynchronous I/O,异步I/O模型。异步I/O和同步I/O不同,同步I/O时,程序被挂起,一直到I/O处理完,程序才能获得控制。异步I/O,调用一个函数告诉 OS,进行I/O操作,不等I/O结束就立即返回,继续程序执行,操作系统完成I/O之后,通知消息给你。Overlapped I/O只是一种模型,它可以由内核对象(hand),事件内核对象(hEvent), 异步过程调用(apcs) 和完成端口(I/O completi 阅读全文
posted @ 2014-04-07 14:58 bitbit 阅读(1412) 评论(0) 推荐(0)
上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 28 下一页