自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

编码无悔

主站:www.codelast.com 人生就像最优化算法中的求解过程,努力寻找全局最优解,绘出最漂亮准确的曲线

  • 博客(18)
  • 收藏
  • 关注

转载 gzip: stdin: decompression OK, trailing garbage ignored

<br />解压一个tar文件时,遇到如下错误:<br />gzip: stdin: decompression OK, trailing garbage ignored<br /> <br />查到CSDN的帖子:<br />http://topic.csdn.net/u/20080103/12/2b006fb3-fb43-41fd-a09f-3530adfe6b8e.html<br /> <br />转过来:<br />“报这样的错通常是因为tar.gz文件的尾部有一串0x00或者0xff,这是由于很多

2010-06-29 17:17:00 17982 2

原创 socket设置超时时间

用socket发送数据前,可以先设置其属性,指定超时时间。超时时间包括接收超时时间和发送超时时间,假设设置接收超时时间为2秒,可以这样:int time_out = 2000; // 2秒setsockopt(sockfd, SOL_SOCKET,SO_RCVTIMEO, (char *)&time_out,sizeof(time_out));但是在程序中,你可能会发现这样设置之后,还是无效,用接收UDP数据时,recvfrom函数仍然阻塞在那里一动不动,为什么?原因是你没有设置socket为非阻塞的。在设

2010-06-28 15:46:00 6264

原创 SIGINT信号导致的usleep无效问题

如果你的程序有多个无限循环的子线程(周期性地完成某一任务),当程序结束的时候,为了能够优雅地退出这些线程,通常都会先在子线程的while()无限循环中,设置一个(全局)运行标志,例如:while (g_flag){/////////////////////////////////////// do something periodically /////////////////////////////////////usleep(1000000);// sleep for 1 second }然后,在主线程

2010-06-28 15:34:00 3472

原创 用shell判断一个字符串是不是全为数字

<br /><br />#!/bin/sh                                                                                                                                                                           <br /> <br /># 该变量就是要判断的变量<br />VAR="1234908"<br /> <br />RET=`e

2010-06-26 20:46:00 5554

原创 浮点数/float/double 是否需要考虑网络字节序的问题

在网络上传输数据时,对整数,我们使用转换为网络字节序的方法,来保证跨平台传输数据时不会出现字节顺序问题导致的解析错误,但是对浮点数,是否也需要这样做?在socket编程中,只有针对整型的字节顺序转换函数,例如htonl(),htons()等,浮点数怎么办?这里先转载一段网上摘取的文章:_______________________________________________________________________________问:为什么在网络编程中,即需要考虑字节序的问题时。对于double、

2010-06-26 17:23:00 15029 2

原创 std::find,std::find_if对类进行查找

STL的find,find_if函数提供了一种对数组、STL容器进行查找的方法。使用该函数,需 #include 我们查找一个list中的数据,通常用find(),例如:using namespace std;int main(){list lst;lst.push_back(10);lst.push_back(20);lst.push_back(30);list::iterator it = find(lst.begin(), lst.end(), 10);// 查找list中是否有元素“10”if (i

2010-06-24 17:17:00 33819 3

原创 UDP报文的覆盖/重叠问题

对一个UDP Server来说,如果同时有几个UDP Client向其发送数据,而UDP Server使用了单线程串行处理的方式来处理收到的UDP报文,那么,会不会在UPD Server还没有处理完一条报文的时候,其他几个Client同时发送了数据,并且这些数据累加在一起(或者重叠在一起),导致UDP Server下一次使用recvfrom函数接收数据的时候,实际上一次接收到的数据是几个Client数据的集合(或者错乱了)呢?答案是:不会。我们可以做下面的实验(这是Linux下的程序)。这是一个UDP Se

2010-06-23 01:04:00 4805

原创 curl的超时时间设置

使用curl时,有两个超时时间:一个是连接超时时间,另一个是最大允许时间。连接超时时间用 --connect-timeout 参数来指定,最大允许时间用 -m 参数来指定。例如:curl --connect-timeout 10 -m 20 "http://XXXXXXX"连接超时的话,出错提示形如:curl: (28) connect() timed out!最大允许时间超时的话,出错提示形如:curl: (28) Operation timed out after 2000 milliseconds w

2010-06-21 14:08:00 26894 2

转载 C++迭代器使用流和标准函数的一种方法

对于迭代器,有另一种方法使用流和标准函数。理解的要点是将输入/输出流作为容器看待。因此,任何接受迭代器参数的算法都可以和流一起工作。 示例代码:#include #include     // Need random(), srandom()#include       // Need time()#include    // Need sort(), copy()#include       // Need vector using namespace std; void Display(vector&

2010-06-20 11:20:00 1967 1

原创 C++程序中统计一个目录下的文件数量

<br />如果一个目录下不包含其他目录,只有文件,怎么得到文件数量?这么容易的一个问题,你会用什么方法去做?<br />我喜欢利用shell来帮忙:<br />在程序中构造shell命令:ls 目录名 | wc -l<br />然后执行它,得到返回的结果,就结束了。<br /> <br />执行一个shell命令并获取其返回结果的函数示例:<br /> <br /><br /><br />std::string getCmdRes(const std::string sc)<br />{<br />FIL

2010-06-20 00:54:00 8745

转载 SHELL下的数字比较及计算

<br /><br />比较: <br />方法一: if [ ${A} -lt ${B} ]; then ... <br />这是最基本的比较方法,使用lt(小于),gt(大于),le(小于等于),ge(大于等于),优点:还没发现;缺点:只能比较整数,使用lt,gt等不直观 <br />方法二: if ((${A} < ${B})) then ... <br />这是CShell风格比较,优点:不用使用lt,gt等难记的字符串;缺点:还是只能比较整数 <br />方法三: if (echo ${A} ${

2010-06-18 15:49:00 6187

原创 blog访问量首次进入前1W名

<br />从2006年底第一篇我的CSDN博文发布到现在,三年多过去了。写博客需要很多坚持和很多耐心,一千多字的文章甚至于会花一个多小时来写,因为写下来远比在脑中想想要耗时。由于工作的原因,我没有那么多时间来写博文,但是至少也算是断断续续地坚持到了今天,今后也将继续断断续续地写下去,人在博在。<br /> 

2010-06-17 10:52:00 862

原创 Google手机地图支持语音识别了

<br />很久没升级Google Maps了,今天才得知有新的升级,一装上,竟然支持语音识别了。小试了一下,在我那CPU主频比较慢的WM手机上,也可以较快地完成识别,并且对中、英文的识别都比较准确(前提是,发音比较清晰)。这么强悍的东西,实在是太好用了。<br /> 

2010-06-14 22:10:00 923

原创 shell取本机的IP地址

<br />如果你有多块网卡,那么取的地址跟网卡有关系,所以要指定网卡名。<br />取指定网卡的IP地址的方法为:<br /> <br />ifconfig eth0 | sed -n "2,2p" | awk '{print substr($2,6)}'<br /> <br />其中,“eth0”即为你指定的网卡名。<br />sed -n "2,2p" 表示取结果中的第二行内容。<br />awk '{print substr($2,6)}' 表示取第二项内容的第6个字符开始的字符串,即IP地址字符串

2010-06-12 16:18:00 2260

原创 shell中初始化数组并遍历数组

<br />假设有数组名为ARR,则初始化的一种方法是:<br /> <br />ARR=(2 4 6 8)<br /> <br />其中,括号里的各项使用空格来分隔。<br /> <br />遍历数组的方法为:<br /> <br />for NUM in ${ARR[*]}<br />do<br />echo $NUM<br />done<br /> <br />其中,每一次循环过程中,数组里的当前元素均被保存到NUM变量中,使用即可。<br /> 

2010-06-12 16:09:00 43050

原创 shell读取文件的指定行字符串

<br />命令:<br /> <br />sed -n Np 文件名<br /> <br />其中,“N”必须替换成一个数字,例如,你要取文件1.txt的第7行,命令为: sed -n 7p 1.txt<br /> <br />输出结果即为指定行内容。

2010-06-12 16:04:00 15764 1

原创 用shell获取目录/文件夹/文件的时间戳

<br />命令:<br /> <br />date +%s -r 目录名/文件名<br /> <br /> <br />输出内容形如:<br /> <br />1276225332

2010-06-11 21:29:00 14257

原创 C++序列化的库

<br />什么是序列化?<br />简单来说,序列化就是将对象实例的状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它根据流重构对象。这两个过程结合起来,可以轻松地存储和传输数据。<br /> <br />MFC里有序列化类CArchive,而当你脱离MFC编程时,要想实现序列化,怎么办?自己写?恐怕没必要,这里有一个基于STL的C++库,可以让你很方便地完成这个功能:http://s11n.net/<br /> <br />摘取其网站上的一段介绍:s11n (an abbreviation

2010-06-03 10:18:00 1395

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除