自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (2)
  • 收藏
  • 关注

转载 用Au3 发 邮件

;发件人推荐使用163邮箱,去申请一个就好。#include Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")Global $oMyRet[2]Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")Func _INetSmtpMailCom($s_SmtpS

2012-06-03 23:25:09 1942

原创 AU3-设置IP和DNS

#include #include #include #include #include #include Opt("GUIOnEventMode", 1)$G_bCreate = False;$G_Config = @WorkingDir & "\config.ini"$G_Name= ""$hDlg = GUICreate("修改IP",481,23

2011-12-23 15:00:46 2869 11

原创 AU3-进程名获取窗口名

#Include Dim $arr = ProcessList("PersonalClient.exe")$PID = 0If $arr[0][0] > 0 Then $PID = $arr[1][1]Else ExitEndIfDim $arr1 = WinList()For $i = 1 To $arr1[0][0] $hwnd =  $arr1[$i]

2011-12-21 09:42:04 1565

原创 AU3-常用函数1

;1点击按钮ControlClick("窗口名称","","[CLASS:Button; INSTANCE:1]","left");2获取edit文本 设置文本ControlSetText("窗口名称","","[CLASS:Edit; INSTANCE:1]","文本",1)ControlGetText();3.获取状态栏中的文本AutoItSetOption("WinT

2011-12-21 09:36:55 1090

原创 AU3 - 进程名获取窗口标题

Dim $arr = ProcessList("aadfa.exe")$PID = 0If $arr[0][0] > 0 Then $PID = $arr[1][1]Else ExitEndIfDim $arr1 = WinList()For $i = 1 To $arr1[0][0] $hwnd =  $arr1[$i][1]  If  _WinAPI

2011-12-20 14:24:01 2997

转载 常用SQL(2)

/**修改 系统统计参数**/ALTER system SET statistics_level = ALL;/**查看内存SGA PGA**/show parameter target;  SELECT * FROM v$sgainfo;show sga;/**内存表**/--设置内存表ALTER TABLE t_team storage(buffer_pool

2011-12-20 08:39:02 340

原创 俄罗斯方块

#pragma once/******************************************************************************** name       : * description: 点,代表一个小方块* input      : * output     : * return     : void* rema

2011-12-19 17:53:33 315 4

原创 多写多读-线程安全队列4

//放入数据的过程template bool TMultiRWQueue::myPut(Element& data){ if (!m_lockPut.Lock()) {  return false; }  //拷贝元素数据到空闲节点 *m_Put = data; //空闲节点指向下一个位置 m_Put++; if (m_Put >= m_Tail

2011-12-13 15:51:59 321

原创 多写多读-线程安全队列3

//执着放入一个数据(没有空间就一直等待)template bool TMultiRWQueue::put(Element& data){ if (!m_bInit) {  return false; } //获得空闲信号量通知 if (!m_semaPut.Wait()) {  return false; }  //放入元素 myPut

2011-12-13 15:50:44 468

原创 多写多读-线程安全队列2

//初始化,创建对列template TMultiRWQueue::TMultiRWQueue(){  m_bInit =FALSE; m_Head = NULL ;      //队列起点 m_Tail = NULL;        //对列终点 m_Put = NULL;       //下一个写入位置 m_Get = NULL;       //下一个读取位置

2011-12-13 15:47:15 448

原创 多写多读-线程安全队列1

#pragma once#include "TSemaphore.h"#include "TLock.h"//支持多读多写#ifndef TMULTIRWQUEUE_H#define TMULTIRWQUEUE_Htemplate class TMultiRWQueue{public: typedef T Element; private: Ele

2011-12-13 15:39:50 504

原创 字符串切分

#ifndef WORDDATA_DEF#define WORDDATA_DEF/******************************************************************************** name       : WORDDATA* description: 本类主要用以切分字符串。例如"A=B" 用'='切分为 "A"和"B

2011-12-13 14:49:33 435 2

原创 事件锁-Linux

#ifndef WAIT_LOCK_DEF#define WAIT_LOCK_DEF/******************************************************************************** name       : WORDDATA* description: 本类主要用以加锁和解锁* remark     : Crea

2011-12-13 14:37:02 698

原创 线程同步-信号量

3.信号量 (Semaphore) A synchronization object that allows a limited number of threads in one or more processes to access a resource. Semaphores are useful in controlling access to a shared resource that

2011-12-13 14:31:54 326

原创 线程同步-互斥量

2.互斥量(Mutex) A synchronization object that allows one thread mutually exclusive access to a resource. Mutexes are useful when only one thread at a timecan be allowed to modify data or some other

2011-12-13 14:23:33 372

原创 线程同步-临界区

1.临界区(Critical Section) A synchronization object that allows one thread at a time to access a resource or section of code. Critical sections are useful when only onethread at a time can be allow

2011-12-13 14:22:49 401

原创 临界区锁

#pragma  once#include class TCriticalSection{private: CRITICAL_SECTION   m_critical;  TCriticalSection() {  InitializeCriticalSection(&m_critical); }; ~TCriticalSection() {  De

2011-12-13 14:21:03 342

原创 互斥锁

#pragma  once#ifdef _WIN32#include typedef DWORD TSemWaitTimeout;class TMutexLock{private : HANDLE m_mutex; public: TMutexLock() {  m_mutex = CreateMutex(NULL, false, NULL); }

2011-12-12 17:33:42 628

原创 信号量封装类(Linux)

#else#include #include typedef int  TSemWaitTimeout;class TSemaphore  {private: sem_t m_sem;public: TSemaphore() {  m_sem = NULL; }; ~TSemaphore() {  if(NULL != m_sem)

2011-12-12 17:17:38 695

原创 信号量封装类(windows)

#pragma once/******************************************************************************** name       : 信号量封装类* description: * input      : * output     : * return     : void* remark

2011-12-12 17:16:24 431

原创 关于查找排序的一点总结

最近在项目中,写协议栈的时候,需要引入消息重发机制,所以使用了资源池+队列的方式管理需要重发的消息,消息重发按照 每隔1s 2s 4s....的方式进行,每次取队列的第一个判断需要重发的时间,并等待一段时间(不超过 最短重发时间,因为可能会有新的消息加入队列),重发完毕后,将消息的下次重发时间 刷新并插入队列中(采用 折半查找的方式),经测试,当消息数量在8W条时,插入一条数据 大约需要50us,

2011-12-08 09:04:26 369

原创 Linux常用命令

1.查看 线程CPU使用ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu 2.抓包(root用户) 先执行ifconfig 查看网卡tcpdump -i eth1 -s 0 -w 1.cap 3.查看硬盘信息df -h4.查看当前文件夹信息du -sh * 5.查看任务管理器vmstat 1

2011-12-08 08:51:02 241

原创 蒙地卡罗法求PI

解法蒙地卡罗的解法适用于与面积有关的题目,例如求PI值或椭圆面积,这边介绍如何求PI值;假设有一个圆半径为1,所以圆面积就为PI,而包括此四分之一圆的正方形面积就为1,如下图所示:如果随意的在正方形中投射飞标(点)好了,则这些飞标(点)有些会落于四分之一圆内,假设所投射的飞标(点)有n点,在圆内的飞标(点)有c点,则依比例来算,就会得到上图中最后的公式。至于如何判断所产生的

2011-12-01 10:12:51 1096

原创 八枚银币

说明现有八枚银币a b c d e f g h,已知其中一枚是假币,其重量不同于真币,但不知是较轻或较重,如何使用天平以最少的比较次数,决定出哪枚是假币,并得知假币比真币较轻或较重。解法单就求假币的问题是不难,但问题限制使用最少的比较次数,所以我们不能以单纯的回圈比较来求解,我们可以使用决策树(decision tree),使用分析与树状图来协助求解。一个简单的状况是这样的,我们比

2011-11-30 16:41:14 1115

原创 八皇后乃至N皇后问题

西洋棋中的皇后可以直线前进,吃掉遇到的所有棋子,如果棋盘上有八个皇后,则这八个皇后如何相安无事的放置在棋盘上,1970年与1971年, E.W.Dijkstra与N.Wirth曾经用这个问题来讲解程式设计之技巧。解决思路:1维数组szResult[i]依次表示第i行对应的皇后的所在的列。采用遍历方式第i行皇后所在的列从0到N 分别判断 此时是否出现重复现象,如果重复则无

2011-11-30 16:31:53 900

原创 三色旗

三色旗的问题最早由E.W.Dijkstra所提出,他所使用的用语为Dutch Nation Flag(Dijkstra为荷兰人),而多数的作者则使用Three-Color Flag来称之。假设有一条绳子,上面有红、白、蓝三种颜色的旗子,起初绳子上的旗子颜色并没有顺序,您希望将之分类,并排列为蓝、白、红的顺序,要如何移动次数才会最少,注意您只能在绳子上进行这个动作,而且一次只能调换两

2011-11-30 14:40:22 2843

原创 Linux 获取微秒时间

#include #include    struct timeval tv; struct timezone tz; gettimeofday (&tv , &tz); double tCur = tv.tv_sec + double(tv.tv_usec)/1000000.0;

2011-11-21 16:37:36 909

转载 Linux 使用statvfs读取文件系统信息

使用statvfs读取文件系统信息///文件操作偏移地址启用64位形式#define _FILE_OFFSET_BITS 64#include #include typedef enum {    TOTAL_SIZE,///文件系统的大小    FREE_SIZE, ///自由空间    USED_SIZE, ///已用空间    AVAIL_SIZE /

2011-11-17 10:09:10 9863

原创 Linux设置系统时间

1.date 设置后重启会变化 date -s 2011-10-13 -s  10:12:202.clock 对bios设置 重启后不变

2011-11-16 11:18:34 407 1

原创 TCP客户端无法收到消息的问题。

1.       Client 创建Socket1并发送登陆报文2.       Client 接收登陆响应3.       Client 关闭Socket14.       Client 处理登陆响应5.       Client 创建Socket2并发送注销报文6.       Client 接收注销响应7.       Client 关闭Socket28.

2011-11-10 10:31:36 1370

原创 线程结束

//接收线程函数UINT RtcpRecvThreadFunc(LPVOID pParam){ if (NULL == pParam) {  return 0; } AFX_MODULE_THREAD_STATE* pState = AfxGetMod

2011-10-19 15:42:19 209

原创 NFS实现文件夹共享

基于NFS实现网络映射场景:假设10.147.136.48上有一个目录/home/work,10.147.136.49需要对其进行访问并能进行读写操作。原理:NFS(网络文件系统)1.以root用户登陆 482.检查是否安装NFS  ipt4:/home #

2011-09-28 09:17:43 647

原创 Linux线程安全 锁和广播锁,

#ifndef LOCK_DEF#define LOCK_DEF/******************************************************************************** name       : WORDDAT

2011-09-28 08:37:57 366

原创 TCP send 发送大数据量的问题

int sendTCP(SOCKET& socketfd,TString strXml){ int iContLen = strXml.length(); int iSendLen = 0;#ifndef WIN32 fd_set scanSet; FD_

2011-09-26 17:45:46 5301

原创 linux 执行命令行,获取结果

char strcmd[256] = {0}; snprintf(strcmd,sizeof(strcmd)-1, "ls -l %s",m_logpath); FILE *pf  = popen(strcmd,"r"); if( NULL == pf) {

2011-09-26 09:45:40 1904

转载 对于linux socket与epoll配合相关的一些心得记录(转载)

没有多少高深的东西,全当记录,虽然简单,但是没有做过测试还是挺容易让人糊涂的int nRecvBuf=32*1024;//设置为32Ksetsockopt(s,SOL_SOCKET,SO_RCVBUF,(const char*)&nRecvBuf,sizeof(int))

2011-08-02 22:06:36 394

原创 巧用sourceInsight宏实现助手功能

1.函数定义/****************************************************************************** * Name  :  * Description :  * Input  :  * Output  :  *

2011-07-20 11:14:09 387 3

原创 小技巧:动态加载服务

更新一个正在运行的服务,无需重新加载服务1.停服务 kill -9 服务所在容器的PID2.删除启动服务生成的文件 cd service/app/servicerun/里面的文件 包括服务的tar包和同名文件夹3.复制新的tar包 service/app/servicefile/

2011-07-20 09:12:26 291

原创 makefile报错 warning: ignoring old commands for target

原因是:本地文件未能同步到服务器上修改方法:删除服务器的文件 rm -rvf ...

2011-07-20 08:57:54 6244 1

64位操作系统编程规范

64位操作系统编程规范

2012-08-28

C++代码检查

C++代码检查,基于<<高效程序设计>>林锐,以及自身的开发经历进行编写

2012-02-03

空空如也

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

TA关注的人

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