自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 UNIX/Linux匿名管道

零、简介管道,即匿名管道,是UNIX系统上非常古老的进程间通信方法,也是最常用的。它常用于由父子进程之间的通信,比如在shell中把一个命令的输出使用管道传递给另一个命令作为输入。一、管道的特点管道传递的是字节流,就像TCP socket一样,没有数据块大小的说法。所以无法使用lseek()来随机访问数据。使用管道读写数据的方法和读写文件类似,可以使用read()和write()系统调用。如果管

2017-07-20 23:04:59 597

原创 取出ios模拟器中程序写下的文件

在XCode->Window->Devices里面是取不出模拟器中的文件的。可以在程序中添加一小段代码:NSString *file = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0]; NSLog(@"%@",file);这段代码可以打印出程序运行时写文件保存在电

2017-03-17 18:59:03 1293

转载 Visual Studio Error LNK2001 无法解析的外部符号 的几种情况

VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时,编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使人不明其所以然。如果不深入地学习和理解VC++,要想改正连接错误LNK2001非常困难。   初学者在学习VC++的过程中,遇到的LNK2001错误的错误消息主要为:   unresolved

2016-11-07 14:28:30 11356 1

原创 Linux 安装配置DHCP服务器

零、环境机器:树莓派操作系统:Raspbian GNU/Linux 7 (基于Debian)一、安装DHCP服务器使用apt-get命令。注意需要使用root权限。apt-get install dhcp3-server但是会出现错误:[FAIL] Starting ISC DHCP server: dhcpd[....] check syslog for diagnostics. ... fa

2016-10-15 16:14:34 5192

原创 Linux下动态库、静态库的生成与使用

动态库和静态库的介绍        一般情况下,在项目里会把功能相似的代码封装成库,方便使用和管理,同时增加了代码的内聚性。库分为两种,一种为静态库,文件名以.a结尾,另一种是动态库,文件名以.so结尾。静态库和动态库的使用各有利弊。使用静态库的好处就是简单,因为在链接的时候直接把静态库中的内容链接到可执行文件中,链接完成后,就不再需要静态库了。静态库的缺点是,增大了可执行文件的体积,增长了可

2016-10-12 16:19:03 1208

原创 Linux Shell 读取用户输入

在Linux Shell下读取用户输入可以使用read命令。用法:echo "Input something:"read inputecho "Your input is: $input"运行结果:Input something:hahahaYour input is: hahaha

2016-10-12 10:23:04 10164

原创 修改Bash命令行提示符

打开用户家目录下的.bashrc文件,找到如下内容:if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ 'else PS1='${debian_chro

2016-10-11 10:01:06 4394 1

原创 Linux ar 命令简介

ar命令用于创建、修改、释放存档文件(archive file)。常用于创建静态链接库,即.a文件。一、创建静态库:用a.o b.o c.o这三个目标文件生成静态库libabc.a:ar -cvr libabc.a a.o b.o c.o二、参数简介:d:从库中删除模块。按模块原来的文件名指定要删除的模块。如果使用了任选项v则列出被删除的每个模块。m:该操作是在

2016-08-04 19:23:34 1539

原创 魅族手机ADB shell出错 error: device not found

一、原因根据网上的贴子,大概是因为某种原因导致安卓adb没有获得魅族手机USB的vender ID,从而无法识别出手机。二、解决方法解决方法的思路很简单,获取魅族手机USB的vender ID,然后写入adb对应的配置文件,重启ADB就可以了。Windows平台Windows下貌似没有专门获得USB设备的vender ID的系统工具。可以使用USBVIEW.EXE小工具来查看USB设备的详细信息。下

2016-03-16 23:23:12 4249 1

原创 简单的Vim配置文件

Linux下vim的主配置文件是/etc/vimrc,但是不建议修改这个文件。可以再自己的家目录下建立一个.vimrc文件,来保存自己的配置,还可以不影响其他用户的配置。Windows下的vim配置文件是Vim安装目录下的_vimrc文件。配置文件内容如下:syntax on "显示语法高亮set number "显示行号set

2016-01-17 11:27:08 1820

原创 C/C++内联函数(inline)

C/C++提供了内联函数这个机制。内联函数是向编译器建议:编译这个函数的时候直接把函数展开,而不是进行函数调用。但是这只是一个建议,编译器可能并不接受这个建议,仍然把它当做普通函数进行编译。合理使用内联函数的优点是:减少函数调用的操作,也就是免去了保存堆栈现场、参数进栈、跳转、清理堆栈、恢复堆栈现场等一系列的操作,从而提高了程序的效率。使用宏函数也可以达到类似的效果,然而宏函数有一个致命的

2016-01-13 14:11:18 1488 2

转载 C++ 格式化输出

C++ 格式化输出enum { skipws = 0x0001, // 跳过当天及后面所有连续的空白符。 left = 0x0002, right = 0x0004, internal = 0x0008, // 在指定的域宽内数值的符号按左对齐、数值本身按右对齐输出。 dec = 0x0010, // 10 oct = 0x0020, // 8 hex =

2015-09-14 11:11:31 1741

原创 Linux网络编程(3)使用select处理多个连接的回射服务器

作为一个服务器,只处理一个连接是在有点说不过去。当有多个客户端建立连接时,需要保持较好的并发性,以及时处理每个连接。最简单的一种方法就是把socket设置为非阻塞方式(使用ioctl()函数),然后在一个死循环中一直轮流测试每个连接的recv(),如果收到数据,再发送回去。这样做最大的坏处就是在没有可以读的数据时,CPU一直处于忙等待的状态,浪费了宝贵的CPU资源。有一种不使用忙等待的方法

2015-05-24 17:25:51 2492

转载 设置 Windows 默认命令行窗口大小和缓冲区大小

方法一:使用mode命令查看一下mode的用法:mode /?可以得到修改窗口大小的用法是:MODE CON[:] [COLS=c] [LINES=n]现在把窗口大小从默认的80x40改成120x40:mode con cols=120 lines=40但是这样改了以后,就没有缓冲区了,而且开一个新的窗口以后,还是默认的大小方法二:修改注册表保存系统默认的 cm

2015-05-07 18:04:21 10821

原创 Linux网络编程(1)简单的TCP客户端

简单地TCP客户端

2014-11-11 10:33:03 1104

原创 求字符串的不重复字符的最长子串长度的问题

已知一个字符串,只含有小写字母,求出zifuc

2014-11-09 20:46:05 4089 1

原创 Linux网络编程(2)简单的TCP回射服务器(Echo Server)

简单的TCP回射服务器

2014-10-16 20:57:11 5259 1

转载 Qt: 释放窗口资源

1. 对于使用指针,使用new创建的窗口,当然可以使用delete显示的释放其占用的资源:Widget *w = new Widget();delete w;2. 对于使用指针,使用new创建的窗口,还可以使用QWidget::setAttribute方法来当窗口关闭后自动释放其占用的资源,而不用户显示的去调用delete释放,此方法当然也会调用窗口的析构函数:

2014-07-18 17:09:19 1671

原创 QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection'解决办法

在Qt上使用SQLite的时候,如果第二次连接

2014-07-16 10:33:29 25718 20

原创 解决TCP报文粘连的方法

TCP报文粘滞的原因:1.TCP协议采用了Nagle算法

2014-05-20 09:35:55 5352

原创 C语言itoa()函数

我手写了一个itoa()函数

2014-05-02 17:22:52 2632

原创 default argument given of parameter 的问题

我写了一个类,其中的一个方法的一个参数是有默认值的:private: void send_message(char *msg, qint16 iid=0);实现的时候:void tcp_socket_class::send_message(char *msg, qint16 iid=0){ ... ...}编译时报错:error:

2013-06-02 21:10:46 5025

原创 Qt中的QTcpSocket类的write()方法不能发送数据的解决方法

在客户端打算用QTcpSocket的一个对象给服务器发消息的,但是每次都连接上,就是发送不出去。我用的Qt版本是4.8后来在使用完write()方法后,再使用flush()方法,就可一发送消息了。qt的官方文档里说,调用了flush()方法后,可以把缓冲的数据立刻发送出去。所以我估计QTcpSocket中的write()方法是带有缓冲的。

2013-05-31 15:47:48 11302 1

原创 Ubuntu修改host遇到unable to resolve host

我本来要修改host的,就直接修改了/etc/hostname这个文件。但是我改了之后,在使用sudo命令时总会出现unable to resolve host这个错误,不过貌似并不影响sudo的正常使用。    在网上查了一下,解决的方法是把/etc/hosts这个文件中127.0.1.1这一行中的名字也得改一下。我的理解是/etc/hostname这个文件的内容和/etc/hosts文件中

2013-02-27 15:51:22 2062

原创 Linux中用st_mode判断文件类型

在Linux中,可以利用stat()函数来获取一个文件的状态#include #include int stat(const char *file_name, struct stat *buf);这个函数执行成功返回0,失败返回-1。取得的文件状态存放在buf指针指向的struct stat结构提中, struct stat的定义如下:struct stat { dev_t

2012-12-11 12:41:57 44257 7

原创 Ubuntu使用FTP时显示500 Illegal PORT command

用vsftpd搭建了一个FTP服务器,用Ubuntu的终端用ftp命令访问这个服务器,在使用ls等命令时,会出现错误信息ftp> ls500 Illegal PORT command.我搜索了一下相关资料,是被动模式的问题。这时,输入passive mode,再使用ls命令时,就不会出现这种状况了。更多详细信息:http://blog.csdn.net/zjejlzc/a

2012-12-07 13:26:23 17318 1

转载 printf格式化输出

printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。printf()函数的调用格式为:    printf("", );    其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符,用来确定输出内容格式。    参量表是需要输出的一

2012-10-13 21:15:57 593

原创 Linux下用math.h头文件

math.h 对应的库是/lib/libm.so.6或/usr/lib/libm.so在命令的最后加上-lm参数就行了,比如这样:gcc -W abc.c -o abc -lm./abc再执行就行了。这里默认的参数使-lc,不加也可以。

2012-10-09 17:24:16 4667

转载 Qt 出现"Undefined reference to 'vtable for'原因总结

由于Qt本身实现的机制所限,我们在使用Qt制作某些软件程序的时候,会遇到各种各样这样那样的问题,而且很多是很难,或者根本找不到原因的,即使解决了问题,如果有人问你为什么,你只能回答--不知道;今天我在这里列举的问题也是再编写Qt程序时,总是遇到的问题,问题普遍,而答案却不唯一,解释这一个问题的说法很多,往往只适合某一种情况,因为这个错误太笼统了,它就是-- “undefined referen

2012-08-12 16:17:45 1007

原创 合并排序

合并排序算法是用分治策略实现对n个元素进行排序的算法。其基本思想是:将带排序元素分成大小大致相同的两个子集合,分别对这两个子集合进行排序,最终将排好序的子集合合并成所要求的排好序的集合。代码如下:#include #include void merge_sort(int[], int, int);void merge(int[], int, int, int);int main

2012-07-12 17:59:07 784

原创 矩阵连乘问题

给定n个矩阵A1,A2.......An,其中Ai与Ai+1是可乘的。    由于矩阵的乘法满足结合律,故计算矩阵的连乘积可以有许多不同的计算次序。这中计算次序可以用加括号的方式来确定。例如,矩阵连乘积A1A2A3A4可以有一下5种不同的完全加括号方式:    (A1(A2(A3A4)))    (A1((A2A3)A4))    ((A1A2)(A3A4))    ((A1(

2012-07-11 11:52:16 17445 2

原创 快速排序

快速排序算法是基于分治策略的一种排序算法。基本思想是,对于输入的子数组a[left : right],按以下三个步骤进行排序:    (1)分解。以a[left]为基准元素将a[left : right]分成三段,a[left : p-1],a[p], a[p+1 : right]。使得a[left : p-1]中的任何一个元素小于a[p],a[p+1 : right]中的任何一个元素大于a[

2012-07-03 09:05:21 863

原创 二分搜索

二分搜索是一个分治算法。    个定已排好序的n个元素a[0:n-1],在这n个元素中找出某一特定的元素x。    二分搜索法的基本思路是把n个排好序的元素从中间分成大致相等的两部分,如果x==a[n/2],则找到x,如果x    可以用以个递归的方法来实现二分搜索函数binary_search()。返回找到元素的下标。#include int binary_search(i

2012-06-29 18:08:42 554

转载 Ubuntu Server 11.04 设置分辨率

一、环境:虚拟机:Virtual Box 4.xOS:     Ubuntu Server 11.04 x64 二、配置:1. 查看机器支持的分辨率:(这一步我没有做,跳过了,直接第二布,分辨率为800*600,好像没有出错)  a)安装hwinfo工具, 命令:sudo apt-get install hwinfo   b)查看支持的分

2012-06-04 23:33:50 2255 2

转载 Linux下输出彩色字符

在 ANSI 兼容终端(例如 xterm、rxvt、konsole 等)里, 可以用彩色显示文本而不仅仅是黑白。但是我们自己编写的程序能否输出彩色的字符呢?当然答案是肯定的。下面的语句就输出高亮的黑色背景的绿色字。printf("\033[1;40;32m%s\033[0m","Hello,NSFocus\n");\033 声明了转义序列的开始,然后是 [ 开始定义颜色。后面的 1 定

2012-05-23 19:19:33 750

原创 C++使用全局变量

如果在在多个.cpp文件中都要用到某个变量,那么这个变量就是全局变量。首先,在.h文件中声明这个变量,加上extern关键字,但是不能给变量赋值。比如在头文件a.h中这样写:#ifndef _A_H#define _A_Hextern int global;#endif在main()函数所在的文件种定义这个全局变量,可以初始化。#include using namespa

2012-05-23 19:09:43 1230

空空如也

空空如也

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

TA关注的人

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