搜索到与相关的文章
编程技术

珍爱生命,远离野指针

Background估计只要是C++程序员,没有一个不痛恨这个野指针啦,而对于我们这种只能通过log来debug的程序员来说,其恨更深。Solution每次看到形如下面的代码时A*p1=newA;A*p2=p1;…deletep1;我都有一种想要将p2也置成空的冲动,但往往都不遂我心愿,因为在实际中p1,p2的出现实在是神出鬼没,让你防不胜防也烦不胜烦。鲁迅先生说过:不在沉默中暴发就在沉默中灭亡。幸好,我没有灭亡,所以我要暴发。在防够了,烦饱了以后,我下定

系统 2019-08-29 23:17:59 3078

Windows

使用Windows Sockets 1.1编程

使用WindowsSockets1.1编程一WindowsSockets协议栈安装检查任何一个与WindowsSocketsImportLibrary联接的应用程序只需简单地调用WSAStartup()函数便可检测系统中有没有一个或多个WindowsSockets实现。而对于一个稍微聪明一些的应用程序来说,它会检查PATH环境变量来寻找有没有WindowsSockets实现的实例(WindowsSockets.DLL)。对于每一个实例,应用程序可以发出一个

系统 2019-08-29 22:45:06 3078

数据库相关

用Create Fishnet来生成格网

接上一个随笔所讨论的:用CreateFishnet生成网格后,显示为线类型,还要在ToolBox里,DataManagementTools,Features,FeatureToPolygon生成面要素,就可以用来生成规则网格切割图像或是别的操作了。还要注意一点,就是在输入范围的时候要小心,先Clear一下下,最好先填大的再填小的,不行的化多试几次,一定可以用的,Enjoyit……用CreateFishnet来生成格网

系统 2019-08-12 01:54:47 3078

编程技术

云计算基础

交付计算资源的另一种方式革命就是人们的思考和行为方式在性质和广度两方面发生的重大变化。按照这个定义,云计算的确算得上是革命了。云计算在计算机架构、软件和工具开发方面带来了根本性变化,当然也改变了我们存储、发布和使用信息的方式。本文的目的是帮助您了解这次革命的性质,让您能够适应和受益于云计算。近几年,信息技术(IT)领域出现了一种新模型—云计算。尽管云计算只是一种交付计算资源的新方式,而不是新技术,但是它导致组织提供信息和服务的方式发生了革命。在最初,IT由

系统 2019-08-29 23:22:24 3077

数据库相关

一些数据库笔记

1NF的要求:1,各行没有顺序关系;2,各列也没有顺序关系;3,不允许重复的行;4,不允许null的列。因此,实际上是要求:1,要有uniquekey;2,不允许nullable属性。当然这里的uniquekey可以是一个attribute,也可以是一个superkey。如果一个relation满足1NF,则所有的attribute自然为一个superkeysuper-key是区分各个行的attribute的集合,minimalsuper-key称作一个c

系统 2019-08-12 01:53:04 3077

数据库相关

模拟NSRunLoop

FundamentalsMostofthemysteriousnessinNSRunLoopisinitsvariousrunmethods.Whatgoesoninthere?Howdoesitallwork?The-runmethodisprettysimple,sincethedocumentationdescribesitintermsof-runMode:beforeDate::Ifnoinputsourcesortimersareattache

系统 2019-08-12 01:33:04 3077

redis

redis源码笔记 - slowlog

slowlog是redis提供的进行query分析的工具。它将执行时间长的命令统一以list形式保存在内存之中,使用者可以通过slowlog命令查看这些慢query,从而分析系统瓶颈。最好的分析笔记是作者的注释,除此之外,会做简要记录。slowlog.h1/*Thisstructuredefinesanentryinsidetheslowloglist*/2typedefstructslowlogEntry{3robj**argv;//记录query参数4

系统 2019-08-12 01:32:34 3077

数据库相关

实际用户id,有效用户id,保存的设置用户id

一个进程的realuserID是指运行此进程的用户角色的ID。一个进程的effectiveuserID是指此进程目前实际有效的用户ID(也就是权限的大小),effectiveuserID主要用来校验权限时使用,比如打开文件、创建文件、修改文件、kill别的进程,等等。如果一个进程是以root身份来运行的,那么上面这两个ID可以用setuid/seteuid随便修改,想怎么改就怎么改,改来改去都可以。但是如果一个进程是以普通用户身份来运行的,那么上面这两个I

系统 2019-08-12 01:32:21 3077

编程技术

Objective-C语法之集合对象的那些事儿(九)

Objective-C语法之集合对象的那些事儿集合对象的关键字是NSSet与NSMutableSet。前者是不可变集合,后者是可变集合,Objective-C语言中大部分数据结构都存在可变与不可变两种数据。这里的集合很像Java语言与C语言中的Set,用法基本一样。但是在Objective-C语言中同一个集合可以储存不同对象的数据。下面分享一个例子就很清楚的看出。1.创建不可变集合对象[NSNumbernumberWithInteger:9527];因为集

系统 2019-08-29 22:56:16 3076