摘要: 最近做的项目中碰到一个新的东西,叫做本地socket。查了好久的资料,也man unix 看了里面的介绍,还是不太理解本地socket怎么使用的。下面是我在网上找到的资料。经过本人的学习及程序运行,没有问题。觉得很不错,所以分享一下!一、先说一下本地socket的来源:socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIXDomainSocket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包、计 阅读全文
posted @ 2013-12-18 16:13 vonyao 阅读(1767) 评论(0) 推荐(0) 编辑
摘要: Makefile的编写中不可以有空格,留白必须按tab键形成的。去掉空格,改为tab键后,再执行make命令,就会成功。学习Makefile可以参考一下链接:http://www.cs.colby.edu/maxwell/courses/tutorials/maketutor/ 阅读全文
posted @ 2013-12-18 15:36 vonyao 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 本人在使用Secure CRT的过程中,出现了这样一个问题:使用vim编程过程中,经常因为窗口的切换而出现光标不可见。分析原因,可能跟我用的window8版本有关,我同事用的window7就没有这个问题。下面是我亲身使用的解决方法,以前碰到不能看见光标,我都只能关闭重新进入,这样导致vim的使用很不方便。下面这个方法相对来说就好用多了。方法其实很简单:只要点击工具栏的任意一个选项一下就可以了,例:点击一下 文件选项,光标就会出现了。就这么简单,解决了光标消失的问题。确实,就是这么简单。 阅读全文
posted @ 2013-12-16 13:12 vonyao 阅读(491) 评论(0) 推荐(0) 编辑
摘要: 线程基本编程——线程函数大全 线程基本编程索引:1.创建线程pthread_create2.等待线程结束pthread_join3.分离线程pthread_detach4.创建线程键pthread_key_create5.删除线程键pthread_key_delete6.设置线程数据pthread_setspecific7.获取线程数据pthread_getspecific8.获取线程标示符pthread_self9.比较线程pthread_equal10.一次执行pthread_once11.出... 阅读全文
posted @ 2013-12-15 23:38 vonyao 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 入门类一直认为,在一个系统上学习开发之前,首先需要熟悉这个系统的使用。鉴于天朝的国情,绝大部分人第一个接触的操作系统就是Windows,因此对于这绝大部分人来说,如果要学习Linux开发,学会使用这个系统都是必不可少的一个环节。现在的Linux初学者是幸福的,随着Linux桌面环境越来越易用,入门一个新的系统是非常容易的事情。虽然命令行对于提高工作效率更加有效,但我们完全可以把熟悉命令的过程放到日常使用中进行。无论学习什么知识,在实践中学习都是高效而且有趣的。在这个阶段,我们也未必一定需要书籍。现在很多Linux发行版的Wiki写得都非常详细,在使用某一种发行版时找到相应的Wiki阅读查询就可 阅读全文
posted @ 2013-12-15 23:30 vonyao 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 用vim编辑器时出现提示:Taglist: Exuberant ctags (http://ctags.sf.net) not found in PATH. Plugin is not loaded.原因:taglist plugin不能找到ctags 程序解决方案:1.删除.vim文件夹下的相关文件:plugin/taglist.vim和doc/taglist.txt2.安装ctags 命令:apt-get install ctags (推荐使用第二个方法)参考地址:http://stackoverflow.com/questions/7454796/taglist-exuberant-.. 阅读全文
posted @ 2013-12-12 13:01 vonyao 阅读(898) 评论(0) 推荐(0) 编辑
摘要: 很多公司都喜欢出关于内存拷贝的这么一道题,下面是本人整理的关于内存拷贝函数编写的过程,仅供参考。以下是我在一次模拟笔试中写的程序:void MyMemcpy(char *dst,char *src,int count){ while(count--) { *dst++ = *src++; }}很显然,这样的程序是不合格的。首先,定死了源地址和目标地址的类型,都用了char *型,使得人们使用时,都要通过类型强制转换来解决,很麻烦。改成下面这样的程序:void MyMemcpy(void *dst,void *src,int count){ while (count--) { ... 阅读全文
posted @ 2013-12-04 23:00 vonyao 阅读(520) 评论(0) 推荐(0) 编辑
摘要: 内存分布:代码区全局变量与静态变量区(全局变量,字符串常量等)局部变量区(栈区)(自动分配,自动回收)动态存储区(堆区)动态内存1.内存申请malloc要注意:1)参数:要申请空间的大小2)返回值:void *3)要加出错判断2.内存释放free要注意: 1)释放的一定是起始地址 2)释放内存的一部分是不允许的 3)不能重复释放 4)防止内存泄露野指针的出现情况: 1)指针变量没有初始化 2)p在free之后,没有设置为NULL,让人认为是合法的指针。 3)指针操作越界了杜绝野指针: 1)指针变量要初始化,如 int *p = NULL; 2)free之后,设置为NULL。如... 阅读全文
posted @ 2013-12-04 13:39 vonyao 阅读(723) 评论(0) 推荐(0) 编辑
摘要: 在编写一些程序时,为了程序可以在其他电脑上也可以使用,而不用手动去更改ip,或者碰到端口不可用的情况。在这里找到了一个好的方法,实际使用也没有问题!故此推荐给大家!方案:在构建网络时,使用:client.sin_port = htons(0);client.sin_addr,s_addr = htonl(INADDR_ANY);这样,linux内核就会自动查找可用的端口,并将自己的ip信息写入client.sin_addr.a_addr中,保证了程序的可移植性。本博客仅用于学习与交流,如有问题,可留言互动。本人必会回复! 阅读全文
posted @ 2013-11-30 22:08 vonyao 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 本周在做关于串口读写程序,出现了以下问题,并找到了解决方法:发现问题:插上u转串的线后,linux系统中/dev/文件夹下找不到相应的设备文件ttyUSB0问题原因:虚拟机中的linux系统不探测外界插入的usb设备,因为qq管家优化了虚拟机,把虚拟机探测usb设备的功能屏蔽了解决:取消qq电脑管家对虚拟机的优化处理下面是qq管家中对虚拟机相关的优化处理,本人将对于虚拟机的优化都忽略了。本博客仅用于学习与交流,如有问题,可留言互动。本人必会回复! 阅读全文
posted @ 2013-11-30 21:49 vonyao 阅读(572) 评论(0) 推荐(0) 编辑