自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 linux 进程间信号量管理程序之sem_timedwait使用

在开发过程中,有三个独立运行的程序模块,三个模块都对sqlite数据库进行读写操作。sqlite在linux共享性较差,所以需要加入互斥信号量解决三个模块访问数据库该问题。另外,在加入信号量后,信号量sem初始化为1,如果三个模块任意一个在读或写数据库时ctrl+c掉(调试过程需要),有时会造成信号量sem保持sem_wait后的值,也就是为0;这就造成了死锁。

2014-06-18 14:18:43 17224

原创 点击QTreewidget子项item获取根item(根节点)

构建好QTreewidgethou

2014-04-08 11:14:39 36717 5

原创 Qtreewidget遍历添加指定目录下所有文件

通过递归遍历添加子项到treewidget中,测试代码已通过,举例为遍历添加/home/XXX下所有文件。解析和详细代码如下:    1.首先在main函数中创建目录根项。    QString rootpath="/home/XXX";           QTreeWidgetItem* root = new QTreeWidgetItem(QStringList()    r

2014-03-28 10:14:32 10995 3

原创 将QT右键弹出菜单选项设为不可用(灰色)

突然接触到QT开发,在设计界面时,treewidget右键菜单已经设计好,不可改动,且菜单子项需将部分右键选项设为不可用。百般设计后,终于发现QT已封装好,实现过程如下: QAction *clinkAction = new QAction(ui->treeWidget_2);clinkAction->setText("连接");cmenu->addAction(clinkActi

2014-03-28 09:44:30 20202

原创 动态库(.so)函数调用

最近刚刚换工作,第一次接触到要从.so动态库文件里调用函数。目前只得到.so库文件和封装的各类函数接口。在网上搜了一些,然后根据自己的代码做了整理。首先,理解动态库,Linux中的.so文件类似于Windows中的DLL,是动态链接库。当多个程序使用同一个动态链接库时,既能节约可执行文件的大小,也能减少运行时的内存占用。具体的如何编译生成.so可以参照linux下gcc命令。具体在调用

2014-03-27 11:01:18 7691

原创 服务器JAVA性能测试——SPECjbb2005

首先是关于SPECjbb2005的一些介绍,google一下有很多,简单概述为:    SPECjbb2005(Java Business Benchmark)基准测试模拟一个三层架构环境来进行JAVA 应用服务器测试, 目的是衡量应用服务器端JAVA 应用之性能。正规SPECjbb2005 测试结果发布必须提供bops 值, 即每秒钟完成多少笔JAVA 业务操作(Business Opera

2013-07-03 13:38:37 16822

原创 sqlite3之sqlite3_busy_handler使用详解

程序运行过程中,如果有其他进程或者线程在读写数据库,那么sqlite3_busy_handler会不断调用回调函数,直到其他进程或者线程释放锁。获得锁之后,不会再调用回调函数,从而向下执行,进行数据库select操作。该函数是在获取不到锁的时候,以执行回调函数的次数来进行延迟,等待其他进程或者线程操作数据库结束,从而获得锁操作数据库。

2014-07-02 10:21:20 13130

转载 Linux获取本机IP

在linux环境下,gethostname() gethostbyname()在Linux不好用

2014-06-19 11:38:33 998

转载 linux下杀死进程(kill)的N种方法

常规篇: 首先,用ps查看进程,方法如下:$ ps -ef……smx       1822     1  0 11:38 ?        00:00:49 gnome-terminalsmx       1823  1822  0 11:38 ?        00:00:00 gnome-pty-helpersmx       1824  1822  0

2014-05-13 14:09:12 10556

原创 linux根据进程名查询是否正在运行

查询当前运行进程中是否有指定进程有多种方式,下面介绍一种通过进程名获取进程号,以此来确认该进程是否在运行。如下实例,查询当前运行进程中是否有test进程在运行。 char buf[200]={0}; system("ps -A | awk '/test/{print $1}'>result"); FILE *fd; fd=popen

2014-05-12 09:52:03 6091

转载 vim配置

Vim很好很完美是公认的了,但是对新手来说,上手毕竟不是很容易。Windows下程序员很多都很喜欢Source Insight这个工具来看代码,各种语法高亮看着很舒服。vim作为为程序员打造的编辑器,没有道理不可以通过配置让程序员舒服地编辑代码,但是新手通常很难将其配置成顺手顺眼的环境。下面的方法可以通过极其简单的方式把vim配置得跟Source Insight一样炫首先需要确定使用的

2014-05-12 09:40:46 634

原创 linux编程C/C++如何自动打开一个终端并且运行新程序

做linux开发过程中,需要在某个程序运行到特定过程中打开一个新的终端界面,运行一个新的程序,具体的实现过程非常简单。

2014-05-12 09:28:14 17728 1

转载 linux共享库实现互斥(Sqlite3)

linux共享库实现互斥概述Sqlite3数据库互斥是基于文件的,即一个数据库文件中如果包含多张表T1、T2...Tn,当有进程对其中的表Tx进行写操作时,其余试图读写Tn的操作都会立即返回IS_LOCK,导致写数据库失败。因此,Sqlite3经常用于嵌入式开发中对并发要求不高的场景。悲剧的是现有的系统用的是Sqlite3,但却要求较高的并发度。于是一个选择被提

2014-05-12 09:18:20 2818

转载 回车、换行、空格的ASCII码值—(附ASCII码表)

回车、换行、空格的ASCII码值回车,ASCII码13换行,ASCII码10空格,ASCII码32Return   =   CR   =   13   =   '\x0d'NewLine   =   LF   =   10   =   '\x0a'ASCII码表信 息在计算机上是用二进制表示的,这种表示法让人理解就很困难。因此计算机上都配

2014-04-17 09:16:14 1743

转载 C语言---整型字符串转换

C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。以下是用itoa()函数将整数转 换为字符串的一个例子:    # include     # include      void main (void)    {    int num = 100;    char str[25];    itoa(num, str

2014-04-15 09:37:03 1004

转载 函数指针&回调函数&linux中的signal函数

1. int (*func)();函数指针,指向的函数为空参数,返回整型;2.回调函数是一个程序员不能显式调用的函数;通过将回调函数的地址传给被调用者从而实现调用。回调函数是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。    void f();// 函数原型上

2014-04-15 09:33:58 977

转载 QTreeWidget的简单使用

QTreeWidget是一种树形的部件,它以树的形式显示各个项,它的每个项使用QTreeWidgetItem来表示。QTreeWidgetItem的值的表示都是用QStringList来表示的。简单的说明一下:代码:[cpp] view plaincopyprint?#include   #include 

2014-04-15 09:20:13 2262

转载 QT/C++中extern "C"的作用

extern "C"的作用extern "C"的作用(一) 前些天,编程序是用到了很久以前写的C程序,想把里面的函数利用起来,连接发现出现了找不到具体函数的错误: 以下是假设旧的C程序库 C的头文件 [cpp] view plaincopy/*-----------c.h--------------*/   #ifnd

2014-04-15 09:13:17 1330

转载 socket编程实例(源码)

本实例使用面向连接协议的客户/服务器模式,其流程如图2.3所示: 图2.3 面向连接的应用程序流程图 服务器方程序: 客户方程序: #include #include #define DATA “half a league, half a league ...” main(argc, argv) int argc; char *argv[ ]; { 

2014-04-15 09:02:56 853

转载 QT Creator中调用动态库文件例程

在linux中,qt里面已经集成了最新的开发平台QT Creator,下面是我练习调用动态库(.so文件)的例程:  1、打开QT Creator,点击File-》New...菜单,选择C++ Libarary工程,点击下一步,输入工程名称(本例为zsz)即可,这没什么可说的。  工程文件(.pro)程序清单  # -----------------------------------

2014-04-15 08:58:59 2408

转载 QT 的信号与槽机制介绍

QT 是一个跨平台的 C++ GUI 应用构架,它提供了丰富的窗口部件集,具有面向对象、易于扩展、真正的组件编程等特点,更为引人注目的是目前 Linux 上最为流行的 KDE 桌面环境就是建立在 QT 库的基础之上。QT 支持下列平台:MS/WINDOWS-95、98、NT 和 2000;UNIX/X11-Linux、Sun Solaris、HP-UX、Digital Unix、IBM AIX

2014-04-10 08:52:54 475

转载 网络包几种格式struct ethhdr、ether_header、iphdr、tcphdr、udphdr

************************eth的结构**************************************struct ethhdr {unsigned char h_dest[ETH_ALEN];unsigned char h_source[ETH_ALEN];__be16 h_proto;} __attribute__((packed));

2014-04-09 09:39:27 13648 1

转载 编译器问题,error: 'for' loop initial declarations are only allowed in C99 mode

使用gcc编译代码是报出error: 'for' loop initial declarations are only allowed in C99 modenote: use option -std=c99 or -std=gnu99 to compile your code错误,这是因为在gcc中直接在for循环中初始化了增量:[cpp] view pl

2014-04-09 09:36:31 16671

原创 QTableWidgetitem只写入数字

ui->TableWidget->item(row,column)->setText(QStri

2014-04-04 12:03:20 10265 2

转载 怎样把QString转换为char *或者相反

这个问题其实也属于老生常谈了。也有不少朋友聊过。我这里把它总结一下吧。1.从QString转换为char *要实现把一个QString转换为char *,一般遵循这样的步骤:第一步,对该QString对象调用QString的toLatin1()方法,以获得该字符串的latin1值。注意toLatin1()的原型如下:QByteArray QString::t

2014-04-02 11:18:35 1219

原创 QT定义预编译器

QT编写过程中遇到类似代码,实际编译过程中,如果缺少MMS_LITE,则会报缺少相应的头文件。需要自己定义编译器MMS_LITE,在VC6.0中添加比较容易,直接在工程选项中操作即可。 #ifndef MMS_LITE#include "gen_333.h"#include "mem_3332.h"#include "mms_1111.h"#include "mms_455

2014-04-02 11:07:50 5255

原创 Ubuntu设置root用户ssh登陆

在使用虚拟机过程中,因为时常要切换到win7下调试,所以比较麻烦。所以最近尝试在win下用SSH Secure Shell Client登陆虚拟机,为了避免反复的su切换到root,所以希望以root用户登陆。1.首先win7安装SSH Secure Shell Client,Ubuntu下也使用apt-get安装openssh-server。2.将 /etc/ssh/sshd_confg

2014-03-28 15:25:00 12141

原创 Qtreewidget点击子item获得绝对路径

在对QTreewidget编写过程中,需要用到相应子item的路径,便于后续对该item文件的访问。首先,需要建立一个connect(ui->treeWidget_2,SIGNAL(itemClicked(QTreeWidgetItem*,int)), this,SLOT(checkself(QTreeWidgetItem* ,int)));当点击到该item时,自动执行SLOT内函数,获取文

2014-03-28 14:44:12 8387

转载 内核中基于netfilter的编译选项

转载地址:http://www.uddtm.com/server/iptables/146.html        在内核配置文件中要启用一些较要的选项包括Netfilter连接跟踪、日志记录和包过滤。iptables 是通过使用由Netfilter提供的内核中的框架来建立一个策略的。    对于2.6系列的内核来说,大多数的Netfilter编译选项都位于Networking--

2013-08-26 15:58:38 6048

原创 linux iptables启动问题

近期在公司需要在板子上启动iptables,具体什么板子就不说了,涉及到公司内部产品。不过google出来的修改方式都大同小异,再次做下整理,便于以后使用。    首先是奇葩的报错信息:    can't initialize iptables table `filter': iptables who? (do you need to insmod?)    Perhaps iptab

2013-08-26 15:54:56 5876

转载 linux/tcp.h编译g++报错

最近在写程序中,偶尔发现加入linux/tcp.h的话,会导致g++编译报错,实在费解。之后,在网上搜到一个解决补丁。diff --git a/include/linux/tcp.h b/include/linux/tcp.hindex 4c5b632..5f359db 100644--- a/include/linux/tcp.h+++ b/include/linux/tcp.h

2013-07-16 15:25:01 2068

原创 linux下编译执行.java

对于第一次在linux非图形界面环境下,编写和执行java代码,除了安装gtk的需要外,今天做测试的时候犯了一个很低级的错误而导致运行有问题。    对于配置java的环境变量在这就不写了,网络上资源很多。具体执行的时候如图     javac编译HelloWorld后生成Helloworld.class,而执行的时候必须执行为 java HelloWorld,如果写为ja

2013-02-25 15:30:02 4805

空空如也

空空如也

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

TA关注的人

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