![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
zhsp1029
一直在努力,渴望成为高手
展开
-
linux消息队列操作
对消息队列的操作无非有下面三种类型:1、 打开或创建消息队列消息队列的内核持续性要求每个消息队列都在系统范围内对应唯一的键值,所以,要获得一个消息队列的描述字,只需提供该消息队列的键值即可;注:消息队列描述字是由在系统范围内唯一的键值生成的,而键值可以看作对应系统内的一条路经。2、 读写操作消息读写操作非常简单,对开发人员来说,每个消息都类似如下的数据结构:原创 2008-03-11 23:32:00 · 60066 阅读 · 14 评论 -
自己实现linux下ping工具
一 原理 ping命令工作在ip层,在程序中通过raw scket进行数据的收发,发数据时不需要填充ip头部,但是在接收数据时需要过滤掉ip头部信息。icmp头部重要的字段有三个,type,code,checksum,其中type表示命令的类型,对于ping命令来说,type的值为8表示发送icmp,type值为0表示是icmp的回包,code表示type下的子命令,对于ping命令来原创 2009-04-01 00:42:00 · 1998 阅读 · 0 评论 -
使用system()函数要谨慎
今天在使用system()函数启动apache时,出现了一个问题,程序伪代码如下:int sock = createSocket();bindSocket(sock,1111);listen();while((int clisock = accept())> 0){ string strRecvBuff = recvFromClient(clisock);原创 2009-03-30 21:03:00 · 4032 阅读 · 1 评论 -
ubuntu下安装man手册
sudo apt-get install manpagessudo apt-get install manpages-desudo apt-get install manpages-de-devsudo apt-get install manpages-dev原创 2009-04-04 16:22:00 · 475 阅读 · 1 评论 -
网络游戏同步原理荟萃
不知道大家是否碰到过这种情况,当某个玩家发出一个火球,这个火球有自己的运动轨迹,那么如何来判断火球是否打中了人呢?大部分情况,当策划提出这个要求的时候,一般会被程序否认,原因是:太麻烦了,呵呵。复杂点的还有包括两个火球相撞之类的事情发生。那么网络游戏中,是否真的无法模拟实现这种模拟呢?首先我们来看看模拟此种操作会带来什么样的麻烦:1,服务器必须trace火球的运行轨迹,乍一想,挺转载 2009-06-11 00:10:00 · 2132 阅读 · 0 评论 -
开发人员和自动化测试
这两天想把自己qzone中的日志全部删除,但是一百多篇日志,删除起来还是很麻烦,于是我想,写个脚本吧,让电脑帮我干这些简单乏味的工作。想起了以前曾经看过几天的watir,一个web自动化测试工具,嗯,就是它了。说干就干,用IEDevelop查看一下网页的结构,准备写脚本。但是一看,就傻眼了,大量的css布局,iframe嵌套,动态创建html代码,找起对象来,特别的难受,试了有半个小时,还是找原创 2009-09-15 21:13:00 · 549 阅读 · 0 评论 -
一个通用的makefile写法,自动推导文件的依赖关系
今天看了一天的makefile的写法,东拼西凑,好不容易写出了一个makefile,颇有成就感,记录下来,以备温习之用。 假设有两个头文件目录 header1,header2;两个cpp文件目录,src1,src2,一个lib目录 写一个完整的makefile步骤如下:1 定义可执行文件的名称 TARGET = MyPro2 指定此编译工程所要使用的头文件所在的目录原创 2010-05-13 00:31:00 · 1400 阅读 · 0 评论 -
ubuntu简单开发设置[g++,mysql,samba]
在ubuntu下安装mysql,g++,samba,dos2unix命令原创 2010-09-26 00:47:00 · 708 阅读 · 0 评论 -
使用 lsof 查找打开的文件
使用 lsof 查找打开的文件Sean A. Walberg (sean@ertw.com), 高级网络工程师简介: 通过查看打开的文件,了解更多关于系统的信息。了解应用程序打开了哪些文件或者哪个应用程序打开了特定的文件,作为系统管理员,这将使得您能够作出更好的决策。例如,您不应该卸载具有打开文件的文件系统。使用 lsof,您可以检查打开的文件,并根据需转载 2011-10-28 18:17:42 · 293 阅读 · 0 评论 -
进程和线程编程
进程和线程编程目 录进程和线程编程原始管道pipe()dup()dup2()popen()和pclose()命名管道创建FIFO操作FIFO阻塞FIFO消息队列msgget()msgsnd()msgrcv()msgctl()信号量semget()semop()semctl()转载 2009-03-21 11:51:00 · 553 阅读 · 0 评论 -
linux技巧之查找文件
在linux下,有时会记不住一些文件的位置获知不知道文件的名称,可以按照下面几个组合命令来找到想要的文件: 1 根据文件名查找文件的路径 用find命令,如想找socket.h文件的路径,可以这么写:find / -name socket.h其中/表示在什么目录下开始查找,-name后面跟需要查找的文件名,当然如果你只能记住一部分文件名,可以也可以用*代替,如 find /原创 2009-03-20 00:22:00 · 354 阅读 · 0 评论 -
ubuntu下禁用笔记本触摸板
在笔记本电脑上打字,总是不小心碰到触摸板,导致光标乱飞,这种情况如何解决呢?以下是禁用触摸板的方法。 一般情况下,是使用synaptics触摸板驱动。 最直接的方法,就是卸载synaptics驱动。sudo apt-get autoremove synaptics 但是如果一旦需要使用触摸板,还要把驱动装上,太麻烦了。 还有一种比较简单的方法。 编辑xorg.conf文件:sudo v原创 2008-08-01 00:23:00 · 659 阅读 · 0 评论 -
进程间通信---信号量
信号量是一个计数器,用于多进程或者多线程之间的数据同步,最常用的是二进制信号量。为了获取资源,进程需要进行如下操作:1 测试控制该资源的信号量2 若信号量的值为正,表明进程可以使用此资源。进程将信号量的值减13 若信号量的值为0,则进程进入休眠状态,直至信号量大于零,进程被唤醒。 在linux中,信号量的测试和-1操作是原子性的,在内核中实现。下面就来介绍XSI信号量的原创 2008-12-31 00:14:00 · 1206 阅读 · 1 评论 -
实现一个简单的linux线程池
线程池:简单地说,线程池 就是预先创建好一批线程,方便、快速地处理收到的业务。比起传统的到来一个任务,即时创建一个线程来处理,节省了线程的创建和回收的开销,响应更快,效率更高。 在linux中,使用的是posix线程库,首先介绍几个常用的函数:1 线程的创建和取消函数pthread_create创建线程pthread_join合并线程pthread_cancel原创 2009-01-17 22:24:00 · 5636 阅读 · 5 评论 -
开发一个简单的mysql代理
首先说明一下,本文不是介绍大名鼎鼎的那个mysql proxy,我做的这个应该是mysql客户端的代理。 首先说明一下背景,公司有一台数据库服务器,但是由于安全的需要,只对几个ip作了授权,其他的机器不能连接上。如下图所示: 现在有个工具开发需求,需要从每个人的工作pc上访问DB Server,由于不能直连,就在授权pc上做了一个mysql的代理。代理是一个小型的ser原创 2009-02-25 22:38:00 · 873 阅读 · 1 评论 -
也谈linux下socket的connect超时
今天写程序,涉及到socket的通信,就把以前写的一个socket通信代码拿过来用。然后就碰到了一个当时感觉到很奇怪的问题,当时的想法是:见鬼了,为什么以前用的好好的代码怎么突然就不能用了呢? 代码的流程是这样的 1 建立一个socket 2 设置socket为非阻塞 3 connect 4 把socket放到一个fd_set中 5 select 这个socket,监视可写事件 6原创 2008-12-11 22:09:00 · 2101 阅读 · 0 评论 -
ubuntu中vim和gedit中文乱码解决方法
听说ubuntu的界面很好,今天一用,果然很好,3D桌面,真的很炫哦。由于是安装的英文系统,故在用vim和gedit时 中文显示有问题,对于vim,解决方法如下:打开vim的配置文件,位置在/etc/vim/vimrc在其中加入set fileencodings=utf-8,gb2312,gbk,gb18030set termencoding=utf-8set encoding=p原创 2009-03-07 23:16:00 · 12388 阅读 · 4 评论 -
ubuntu升级后删除老版本的内核
命令如下: dpkg --get-selections|grep linux 此命令列出所有安装的内核版本 sudo apt-get remove linux-image-2.6.24-12-genericlinux-image-xxxxxx-generic就是要删除的内核版本原创 2009-03-07 23:40:00 · 1126 阅读 · 0 评论 -
推荐一个ubuntu下在线听歌的网站
娱乐始终是linux下的短 处,平时在在windows下听歌有很多选择,最经常用的是qqmusic,可惜qqmusic没有linux版本的。推荐一个在linux下听歌的网站,www.1g1g.com还可以收藏自己的歌曲列表,不错...原创 2009-03-10 23:11:00 · 2016 阅读 · 0 评论 -
修改linux中ls命令显示文件夹的颜色
linux中默认的文件夹颜色是蓝色,我习惯把终端的背景色设置成黑色。这样有有个问题,蓝色的字符在黑色的背景下,的确是难以辨认。于是,想改一下文件夹的显示颜色。经过一番摸索,总结步骤如下:1 默认定义显示颜色的配置文件是/etc/DIR_COLORS,我们把这个文件复制到自己的根目录下。2 打开文件,找到dir的颜色定义,把颜色值从34改成33,即从蓝色改成了黄色。3 重新加载颜色定原创 2014-01-01 00:24:30 · 517 阅读 · 0 评论