C/C++/QT语言相关
siasjack
分享!热情!积极!希望能和技术网友共同进步....
展开
-
QT添加二次确认功能,QMessageBox的使用
对于一些重要的操作需要让用户再次确认一次,给出几个基本的实例是和否 switch( QMessageBox::warning(NULL, "warning",QString::fromLocal8Bit("确定导入文件的频道吗?"), QMessageBox::Yes | QMessageBox::Default,原创 2013-10-23 18:13:25 · 5093 阅读 · 0 评论 -
QT/C++中extern "C"的作用
extern "C"的作用extern "C"的作用(一) 前些天,编程序是用到了很久以前写的C程序,想把里面的函数利用起来,连接发现出现了找不到具体函数的错误: 以下是假设旧的C程序库 C的头文件 /*-----------c.h--------------*/ #ifndef _C_H_ #define _C_H_ extern int ad转载 2013-08-04 11:07:55 · 8467 阅读 · 0 评论 -
QT中设置tablwidget内容不可更改
将表格变为禁止编辑在默认情况下,表格里的字符是可以更改的,比如双击一个单元格,就可以修改原来的内容,如果想禁止用户的这种操作,让这个表格对用户只读,可以这样:tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);QAbstractItemView.NoEditTriggers是QAbstractIte原创 2013-10-16 16:23:35 · 7967 阅读 · 0 评论 -
QT使用scrollarea显示图片,完美解决方案
需求: 在界面上点击“显示图片”按钮,会调用scrollarea窗口显示图片,窗口大小能根据图片大小自动调整,但是最大为1024*768,图片过大就要有滚动条来显示IDE环境: QT Creator ,linux ,ubuntu12.04代码:mainwindow中点击“显示图片”调用scrollarea窗口,下面的函数是被一个按钮的槽函数原创 2013-09-04 11:46:04 · 18797 阅读 · 2 评论 -
ubuntu 下Qt静态编译,应用程序的静态编译与发布
需要配置的安装包 apt-get install build-essential libpcap0.8-dev libx11-dev libfreetype6-dev libavahi-gobject-dev libSM-dev libXrender-dev libfontconfig-dev libXext-dev静态编译Qt1、下载 qt-x11-ope原创 2013-08-28 09:21:44 · 7813 阅读 · 0 评论 -
mysql基础:删除数据库,删除表,重命名表
============删除数据库=============DROP DATABASE用于取消数据库中的所用表格和取消数据库。使用此语句时要非常小心!如果要使用DROP DATABASE,您需要获得数据库DROP权限。IF EXISTS用于防止当数据库不存在时发生错误。也可以使用DROP SCHEMA。////////////删除jack和tmp数据库/////////////原创 2013-07-16 10:42:14 · 5686 阅读 · 0 评论 -
C++ 函数模板( Function templates)
函数模板( Function templates)模板(Templates)使得我们可以生成通用的函数,这些函数能够接受任意数据类型的参数,可返回任意类型的值,而不需要对所有可能的数据类型进行函数重载。这在一定程度上实现了宏(macro)的作用。它们的原型定义可以是下面两种中的任何一个:template function_declaration;template function_转载 2013-07-03 17:31:33 · 13708 阅读 · 0 评论 -
mysql基础:mysql与C结合实例
一个简单的mysql与C的交互,使用了一些mysql的C API!老鸟掠过,新手可以看看!/****************************************** 本文件学习mysql的database使用 学习mysql的C接口 包括初始化db,检查数据库是否存在,不存在就创建。 检查表是否存在,不存在则创建 *******************原创 2013-07-18 17:34:21 · 7246 阅读 · 3 评论 -
输入某个年月日得到那天是星期几的小程序
/** * 左右:输入那一天的年月日,就可以得到那天是星期几 * 资料:闰年时2月有29天,否则为28天 * 1,3,5,7,8,10,12月为31天 */#include char *name[]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"}; void main(void) { int d,m,y,e,t,f; pri原创 2013-06-13 10:54:14 · 5342 阅读 · 0 评论 -
基于Goahead和SQLite的数据采集与查询
今天看到下面的这个文章,真的是大爱啊!文章讲解的很详细,很有用!摘 要:在远程抄表、智能家居等各种嵌入式系统中,都需要实现数据采集和远程查询。提出了一种基于goahead和sqlite的实现方案,并给出了实现细节,包括移植编译安装以及交互式程序的编写和其中遇到的问题。本方案在模块化和扩展性方面要好于其他方案,容易借鉴,已得到成功应用。关键词:goahead;sqlite;嵌入式web服务转载 2013-05-29 11:47:47 · 4208 阅读 · 1 评论 -
程序同步与异步的区别
同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。 异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。 --------------------------------------------------------------- 举个不太恰当的例子,就像: SendMessage(...) TRACE0("转载 2013-05-28 11:04:04 · 17388 阅读 · 1 评论 -
堆和栈的区别--经典
堆和栈的区别 一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表转载 2013-05-13 12:54:46 · 957 阅读 · 0 评论 -
C语言中比较两个浮点数是否相等的方法,fabs和abs
今天在面试中碰到这个问题,当时还迷糊了一番,毕竟平时没怎么用过,记得以前看过,现在有点记不清了!这是C语言很基础的东西,面试一般会遇到!对两个浮点数判断大小和是否相等不能直接用==来判断,会出错!明明相等的两个数比较反而是不相等!对于两个浮点数比较只能通过相减并与预先设定的精度比较,记得要取绝对值!if( fabs(f1-f2) < 预先指定的精度){ ...}原创 2013-05-08 22:09:13 · 39086 阅读 · 0 评论 -
struct ifconf和struct ifreq,获取网线插入状态
这两天看用C获取当前网口的插入网线状态的程序,遇见了这两个不熟悉的结构体,看了头文件中的说明和详细。struct ifreq这个结构定义在include/net/if.h,用来配置ip地址,激活接口,配置MTU等接口信息的/* Interface request structure used for socket ioctl's. All interface ioctl原创 2013-04-21 21:18:50 · 15464 阅读 · 0 评论 -
linux获取网线插拔状态的实现
linux获取网线插拔状态的实现1、对于基于linux2.4内核的uclinux系统如何实现在应用层监控网线插拔状态?2、硬件环境:IPS100(ARM7TDMI)3、实现过程由于linux下的ifconfig命令就能够实现在应用层监控网线插拔状态,例如当网线连接正常时,使用ifconfig eth0命令,打印的信息中会有RUNNING,而拔掉网线后,再使用ifconfig eth转载 2013-04-21 21:46:00 · 9583 阅读 · 1 评论 -
文件socket描述符打开过多导致i无法打开文件的错误
前端时间写程序就遇见过一次因为打开文件过多而不能再打开文件的问题,今天早上又遇见了一个socket打开过多而connect不成功没关闭的情况,导致每次创建socket都不成功的问题,记录下以前找问题和解决问题的方法原因:每个系统给每个用户设定了基本的打开文件个数的权限,一般的linux下为1024个,可以用ulimit命令查看jack@jack-desktop:~$ ulimi原创 2013-12-16 10:22:46 · 3138 阅读 · 0 评论 -
/proc/uptime详解,获取系统启动时间,系统负载率
在Linux中,我们常常会使用到uptime命令去看看系统的运行时间,它与一个文件有关,就是/proc/uptime,下面对其进行详细介绍。View Code BASH1234master@jay-intel:~$ cat /proc/uptime6447032.12 48185264.69master@jay-intel:~$ cat /p转载 2014-01-18 09:23:02 · 27219 阅读 · 0 评论 -
C/C++段错误问题排查和解决方法
Segment fault 之所以能够流行于世,是与Glibc库中基本所有的函数都默认型参指针为非空有着密切关系的。 来自:http://oss.lzu.edu.cn/blog/article.php?uid_7/tid_700.html#comment 背景 最近一段时间在linux下用C做一些学习和开发,但是由于经验不足,问题多多。而段错误就是让我非常头痛转载 2014-02-22 15:07:26 · 38291 阅读 · 4 评论 -
C语言的那些秘密之--函数返回局部变量
一般的来说,函数是可以返回局部变量的。 局部变量的作用域只在函数内部,在函数返回后,局部变量的内存已经释放了。因此,如果函数返回的是局部变量的值,不涉及地址,程序不会出错。但是如果返回的是局部变量的地址(指针)的话,程序运行后会出错。因为函数只是把指针复制后返回了,但是指针指向的内容已经被释放了,这样指针指向的内容就是不可预料的内容,调用就会出错。准确的来说,函数不能通过返回指向栈内存的指针(注意这转载 2015-04-28 16:04:48 · 2046 阅读 · 0 评论 -
用C实现文件复制
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl转载 2015-04-20 17:32:23 · 2369 阅读 · 0 评论 -
字节序(大小端)详解从高低地址和高低位开始理解
字节序(大小端)详解从高低地址和高低位开始理解一、字节序定义字节序,顾名思义字节的顺序,再多说两句就是大于一个字节类型的数据在内存中的存放顺序(一个字节的数据当然就无需谈顺序的问题了)。其实大部分人在实际的开发中都很少会直接和字节序打交道。唯有在跨平台以及网络程序中字节序才是一个应该被考虑的问题。在所有的介绍字节序的文章中都会提到字节序分为两类:Big-En转载 2015-03-08 21:20:01 · 14377 阅读 · 2 评论 -
Bus error的调试解决方法
转自:http://bavon.bokee.com/5429805.html 在x86+Linux上写的程序,在PC机上运行得很好。可是使用ARM的gcc进行交叉编译,再送到DaVinci目标板上运行的时候,出现了Bus error。 出现的位置如下(其中Debug的内容是我在程序中添加的调试信息): root@211.69.193.189:~# arm_v5t_le-gcc -g shit.转载 2015-02-26 18:10:32 · 30304 阅读 · 0 评论 -
C语言libcurl POST json串错误“Unsupported Media Type”
这两天在用libcurl发送http请求代码写好了,联调时发现服务器老是返回“Unsupported Media Type”这个错误,不支持的媒体类型,百度谷歌了一圈遇见这个问题的不少,但是大多数没有把解决方案发出来。其实很简单,如果能认真把curl的example例程看清楚就不会出现这样的问题。下面把代码发出来,供后来者参考帖子请看http://bbs.csdn.net/topi原创 2015-01-19 15:14:52 · 4912 阅读 · 1 评论 -
va_start之后va_end是必须的吗?
这本应是一个无须争论的问题——当然必须调用。stdarg(或varargs,下略)中提供的功能就是一种契约:“你按我的约定方式使用这些宏——即必须调用va_end——我就给你提供实现可变长参数列表所需要的功能。”使用stdarg本来是很简单的事情——按照一个简单的契约(另见相关链接)办事就可以了——根本无须了解其具体实现。有人乐意去研究该功能转载 2014-12-15 09:39:44 · 5464 阅读 · 2 评论 -
ubuntu下libjson-c库的使用问题备忘
libjson-c的使用原创 2014-09-04 12:43:04 · 11903 阅读 · 0 评论 -
JAVA/C/C++获取当前系统毫秒时间+计算程序运行时间
笔者在做Android NDK底层测试编码,很多时候需要获取当前系统毫秒时间来准确分析数据,下面的代码是在Android系统上做了测试,所以此函数代码在Linux系统可行,至于VC上面是否可行,我也没测试(应该不行吧),因为VC与Linux C中的sleep就有很大差别。我将C/C++获取当前系统毫秒时间分享给大家。Java获取当前系统毫秒时间很简单:public转载 2014-07-30 14:06:14 · 5802 阅读 · 0 评论 -
C语言socket判断网络是否联通(支持域名/附源码)
有时候需要用代码判断当前网络是否联通#define NET_PORT 53#define NET_IP "8.8.8.8" //谷歌DNS//获取联网状态int check_net(void){ int fd; int in_len=0; struct sockaddr_in servaddr; //char bu原创 2013-03-02 11:49:54 · 6673 阅读 · 2 评论 -
C语言打印输出,scanf使用注意事项,小技巧
今天看一帖子,赵忠大哥的回复挺经典也很有用,记录下来!在每个最后不带\n的printf后面加fflush(stdout);在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin);另外请检查scanf的返回值。在占用内存空间较大的局部数组声明的前面加static将其从堆栈数据段挪到全局数据段即可避开因局部数组大小超过默认堆栈大小1MB造成程序不能正常原创 2014-05-05 15:30:52 · 2180 阅读 · 0 评论 -
TCP为何采用三次握手来建立连接,若采用二次握手可以吗?
首先简单介绍一下TCP三次握手 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器 进入SY转载 2014-05-04 10:05:31 · 7935 阅读 · 2 评论 -
linux内核中常用函数API
转载自:http://blog.chinaunix.net/uid-20321537-id-1966892.html当编写驱动程序时,一般情况下不能使用C标准库的函数。Linux内核也提供了与标准库函数功能相同的一些函数,但二者还是稍有差别。 类别函数名功能函数形成参数描述字符串转换转载 2014-03-14 13:57:04 · 4552 阅读 · 0 评论 -
C语言对其方式--struct数据结构必学
相同的对齐方式下 ,结构体内部数据 定义的顺序不同 ,结构体整体占据内存空间也 不同 ,如下:设结构体如下定义:struct A{ int a; char b; short c;};结构体A中包含了4字节长度的int一个,1字节长度的char一个和2字节长度的short型数据一个。所以A用到的空间应该是7字节。但是因为原创 2014-02-15 13:21:06 · 5953 阅读 · 1 评论 -
linux C内存泄露检测工具
在Linux下些C语言程序,最大的问题就是没有一个好的编程IDE,当然想kdevelop等工具都相当的强大,但我还是习惯使用kdevelop工具,由于没有一个习惯的编程IDE,内存检测也就成了在Linux下编写程序的一个大问题。 是不是说没有一种内存检查工具能够在Linux使用呢,也不是,像valgrind工具还是相当不错的。他的下载地址是http://valgrind.org/转载 2014-02-22 15:11:19 · 2605 阅读 · 0 评论 -
assert宏学习
assert() 宏用法注意:assert是宏,而不是函数。在C的assert.h 头文件中。assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include void assert( int expression );assert的作用是先计算表达式 expression ,如果其值为假(即为0),那么它先向标准错误流s转载 2013-04-25 21:09:09 · 1173 阅读 · 2 评论 -
gdb调试任意函数
使用gdb调试时,有的函数只在某些路径上会执行到,而触发这些路径执行的条件构造起来比较麻烦,比如某个server在接收到READ请求时,会调用do_read进行响应,这时如果我们想调试do_read函数,就必须在客户端构造一个READ请求来触发。int do_read(const ReadRequest& req); 假设我们知道do_read调用时参数ReadRequest的具体内容,能转载 2013-04-24 16:56:39 · 15254 阅读 · 0 评论 -
char *string="xxxxxxxxx" 与 char string[]="xxxxx"的区别
今天看论坛有人发表了个帖子,参数是char *就不行,但是char string[]就可以,觉得这个错误我也犯了很多,而且没注意过,现在知道了 给大家分享下!char *string=”xxxxxx“这种方式使用的字面值模式,只读,不可以修改。string是个指针,这个字符串存放在程序的RODATA(read-only)段,不能修改的!表示你定义了一个字符指针,这个指针指向一个原创 2013-04-23 16:11:48 · 3118 阅读 · 0 评论 -
goahead登录提示框中服务器信息的修改
一般情况下一个web服务器都会有个登录验证的过程,在验证框里面包含了服务器的信息如下图的goahead服务器,360IE提示谷歌提示有时候你不想让这个goahead出现在这,就应该修改源码了在goahead源码中有webs.c是定义了realm name70 static char_t websRealm[64] = T("nihao"); /*原创 2012-11-30 12:00:09 · 7076 阅读 · 2 评论 -
goahead源码分析webs.c
webs.c(web层)Web层主要功能是处理http协议,处理web服务器业务。可以说是整个web服务器的重点。对于其的详细分析,以后再写。一个基本认证例子的消息头:请求。POST /goform/cfgSdhifRsWeb HTTP/1.1Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, applicati转载 2012-11-30 11:30:49 · 9284 阅读 · 0 评论 -
GoAhead2.5源代码分析--访问验证(security.c)
security.c主要功能是:验证登陆用户的信息,会在页面上显示对应的信息,不成功,显示错误页面,成功时,会验证用户名和密码。----------------------------------------------------------------------------------------------------------------- intwebsSecurit转载 2012-11-29 15:17:18 · 3620 阅读 · 1 评论 -
jiffies溢出与时间先后比较-time_after,time_before
注:本文并非原创,我只是在原来的基础上稍微修改了点东西,原网址:http://decimal.blog.51cto.com/1484476/410673,但是想让更多的朋友们看到这篇文章,所以用了原创,很不错的!1. 概述在Linux内核中,TCP/IP协议栈在很多用到时间比较的地方都使用了jiffies?本文介绍了什么是jiffies,jiffies溢出可能造成的问题,使用time_af原创 2012-11-13 10:00:02 · 22235 阅读 · 5 评论 -
popen函数实现捕获shell里命令的输出--外加自己的一个小接口函数
C语言里有个popen函数,用来捕获shell里命令的输出,这样C和shell也可以相互通信了。自己的接口函数,可随便调用,很方便static int get_cmd_ret(char *cmd,char *buf,int len){ if(!cmd || !strlen(cmd)) return -1; if(len原创 2012-04-26 17:58:15 · 6053 阅读 · 0 评论