- 博客(75)
- 资源 (6)
- 收藏
- 关注
原创 面试题整理
1.char* 和 char[]有什么区别?[cpp] view plaincopychar* get_str(void) { char str[] = {"abcd"}; return str; } char str[] = {"abcd"};定义了一个局部字符数组,尽管是
2013-09-17 10:36:45
1047
原创 类设计者的核查表
C++哲学:只为用到的东西付出代价。////////////////////////////////////一、你的类需要一个构造函数吗?二、你的数据成员是私有的吗?三、你的类需要一个无参的构造函数吗?四、是不是每个构造函数初始化所有的数据成员?五、类需要析构函数吗?六、类需要一个虚析构函数吗?七、你的类需要复制构造函数吗?八、你的类需要一个赋值操作符吗
2013-05-22 13:47:31
892
转载 将 Windows IPC 应用移植到 Linux,第 1 部分: 进程和线程
当前,很多全球商务和服务都正在趋于开源 —— 业界的所有主要参与者都在争取实现此目标。这一趋势催生了一个重要的 迁移模式:为不同平台(Windows、OS2、Solaris 等)维持的现有产品将被移植到开放源代码的 Linux 平台。很多应用程序在设计时并未考虑到需要将它们移植到 Linux。这有可能使移植成为一件痛苦的事情,但并非绝对如此。 本系列文章的目的是,帮助您将涉及到 IPC 和
2013-01-22 10:23:57
829
转载 将 Windows IPC 应用程序移植到 Linux 第 2 部分: 信号量和事件
当前,很多全球商务和服务都正在走向开源 —— 业界的所有主要参与者都在争取实现此目标。这一趋势催生了一个重要的迁移模式:为不同平台(Windows、OS2、Solaris 等)维持的许多现有产品都将被移植到开放源码的 Linux 平台。很多应用程序在设计时并未考虑到需要将它们移植到 Linux。这有可能使移植成为一件痛苦的事情,但并非绝对如此。本系列文章的目的是,帮助您将涉及到 IPC 和
2013-01-22 10:21:48
669
转载 Cocos2d-x学习之windows 7的visual studo 2010开发环境安装
Cocos2d-x学习之windows 7的visual studo 2010开发环境安装1、引擎代码的下载官方版本地址为:http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Download目前最新版本是cocos2d-2.0-rc0a-x-2.0官方代码库:https://github.com/cocos2d/coc
2012-12-29 14:20:02
603
转载 python 文件操作
总是记不住API。昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧:python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()返回指定目录下的所有文件和目录名:os.listdir()函数用来删除一个文件:os.remove()删除多个目录:os.removed
2012-12-24 09:31:48
521
转载 C语言中定义全局变量要注意的地方
在C++中定义全局变量是应该尽量在。cpp文件中定义,而不要在。h 文件中 定义,定义好了之后,可以在。h文件中利用 extern关键字进行 声明。如果在。h文件中定义的话,多层包含可能会引起重复定义的错误。下面是一个示例 在base.cpp中定义全局变量 base.cpp int g_MaxTime; int g_MinTime; int g_MaxCount;
2012-12-15 09:39:06
1203
转载 linux线程信号
1. 概念按照 POSIX, 异步 (外部) 信号发送到整个进程. 所有线程共享同一个设置, 即通过 sigaction 设置的线程处置方法. 每个线程有自己的信号掩码, 线程库根据该掩码决定将信号发送到哪个线程. 由于Linux 线程实现上的独特性, 外部信号始终发送到特定的线程. 2. 例子 [cpp] view plaincopy#include
2012-11-21 11:49:23
617
转载 Duilib入门文档提供下载
<RichEditname="testrichedit" bordercolor="#FF0000"bordersize="0" borderround="18,18"inset="4,2,4,2" bkcolor="#A0F2F5FA"bkcolor2="#A0FF0000" bkcolor3="#A0F2F5FA" font="1"multiline="true" vscrollbar="tr
2012-11-15 17:06:38
2404
转载 Linux下rz,sz与ssh的配合使用
一般来说,linux服务器大多是通过ssh客户端来进行远程的登陆和管理的,使用ssh登陆linux主机以后,如何能够快速的和本地机器进行文件的交互呢,也就是上传和下载文件到服务器和本地; 与ssh有关的两个命令可以提供很方便的操作: sz:将选定的文件发送(send)到本地机器 rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive)rz,s
2012-11-15 17:04:35
748
转载 wget使用技巧
wget 是一个命令行的下载工具。对于我们这些 Linux 用户来说,几乎每天都在使用它。下面为大家介绍几个有用的 wget 小技巧,可以让你更加高效而灵活的使用 wget。$ wget -r -np -nd http://example.com/packages/这条命令可以下载 http://example.com 网站上 packages 目录中的所有文件。其中,-np 的作用是
2012-11-15 17:03:27
644
转载 如何处理海量数据
在实际的工作环境下,许多人会遇到海量数据这个复杂而艰巨的问题,它的主要难点有以下几个方面:一、数据量过大,数据中什么情况都可能存在。如果说有10条数据,那么大不了每条去逐一检查,人为处理,如果有上百条数据,也可以考虑,如果数据上到千万级别,甚至过亿,那不是手工能解决的了,必须通过工具或者程序进行处理,尤其海量的数据中,什么情况都可能存在,例如,数据中某处格式出了问题,尤其在程序处理时,前面
2012-11-01 10:07:26
3804
转载 只针对apache修改ulimit参数
今天对公司服务器进行了优化,但主管了看了之后要求我不要全局修改open files参数,要求只修改apache的open files参数.也就是局部修改. 系统:centos 5.51.查看全局ulimit和apache ulimit参数上图我们可以看到全局ulimit中open files参数值是65535,现在来看apache的view sourceprint?
2012-10-18 17:14:31
1542
转载 ulimit
ulimit 是用来控制 shell 启动进程所占的资源的工具。常见的参数有如下的:-a 显示当前所有的资源限制-H 硬件资源限制,一但设置不能增加-S 软件资源限制,可以增加,但不能超过 -H-u 用户可使用的最大进程-c core 文件的最大值-d 数据段的最大值-n 内核可以同时打开的文件描述符的最大值-s 堆栈的最大值-v 虚拟内存的最大值
2012-10-18 17:02:26
1313
转载 讲解Unix操作系统pgrep工具
Unix操作系统用pgrep寻找进程很重要,在文章中我们要学习这方面的知识,其实大家知道Unix操作系统工具一直在变化。其中一些是您以前可能不太关注的工具,一些是新工具。这些工具,对我们操作Unix操作系统有很多的必要。要知道使用Unix操作系统,工具是多么的重要。所以,我们来学习下用pgrep寻找进程吧。Unix操作系统用pgrep寻找进程您可能无数次使用 ps aux | grep .
2012-10-16 10:45:45
865
转载 aix系统中服务进程监控并自启动脚本
服务器中的一些服务进程可能不稳定,偶尔会自动异常终止,需要一个监控程序脚本来对这个进程进行监控,当发现被监控的服务进程异常终止或不能正常提供服务了,将其启动或重新启动。基本实现思路是,编写一个监控脚本,然后在系统的crontab中将该脚本配置为定期自动执行(例如可以配置为每5分钟执行一次),监控脚本通过监控服务进程的端口或日志文件的修改时间等来判断服务进程是否已异常终止或不能正常提供服务了,当
2012-10-16 10:18:24
3286
转载 /proc/$PID/status
这里我们主要介绍进程的状态,进程的状态可以通过/proc/PID/status来查看,也可以通过/proc/PID/stat来查看.如果说到工具大家用的最多的ps也可以看到进程的信息.这里我们通过/proc/PID/status来分析进程的信息.在2.6.18之后的内核,多了capibilty/cpusets等信息.查看进程状态信息如下:more status Name
2012-10-16 09:44:00
20006
1
转载 /proc/pid/stat
[root@localhost ~]# cat /proc/6873/stat6873 (a.out) R 6723 6873 6723 34819 6873 8388608 77 0 0 0 41958 31 0 0 25 0 3 0 5882654 1409024 56 4294967295 134512640 134513720 3215579040 0 2097798 0 0 0 0
2012-10-15 14:21:35
1118
转载 使用 shell 脚本对 Linux 系统和进程资源进行监控
Shell 简介Shell 语言对于接触 LINUX 的人来说都比较熟悉,它是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。实际上 Shell 是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。它没有一般编程语言的“编译 - 链接 - 运行”过程。不仅如此,Shell 有自己的编程语言用于对命令的编辑,它允许用户编写由 shell
2012-10-12 10:37:06
1162
转载 Linux环境下段错误的产生原因及调试方法小结
最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多、花费时间最长的问题就是著名的“段错误”(Segmentation Fault)。借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解决。1. 段错误是什么一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,
2012-10-09 16:24:03
703
转载 Linux 下的段错误产生 的原因及调试方法
Linux 下的段错误产生 的原因及调试方法简而言之 ,产生段错误就是访问了错误的内存段 ,一般是你没有权限,或者根本就不存在对应的物理内存,尤其常见的是访问 0 地址.一般来说,段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由 gdtr 来保存的,他是一个 48 位的寄存器,其中的 32 位是保存由它指向的 gdt 表,后13 位保存相应于
2012-10-08 09:53:38
630
转载 CentOS下Aapche配置全过程
⒈ 源码包安装httpd。⑴、静态默认安装,命令如下:完成后,先查询安装了那些模块命令如下:再看模块是否激活,如下图:可见模块没有被激活,若想添加模块了,可用如下命令加载:接着可看到模块被加载激活了,如下:⑵、动态安装且加载所有模块,命令如下:完成后可以看到模块安装加载情况如下:通过对比,推荐安装时采取动态完全安装。⒉ apache配
2012-09-25 13:21:06
731
转载 CentOS 防火墙 配置80端口
注(by jhonguy):下面用I表示在规则链表头插入,如果使用A的话,就会在规则的尾端插入,无法达到开发的效果,因为原始的最后一条规则是禁止所有的连接。 from:http://www.myhack58.com/Article/sort099/sort0102/2012/33099.htm #/sbin/iptables -I INPUT -p tcp --dport 80
2012-09-24 17:07:20
2556
转载 gdb调试
编写代码过程中少不了调试。在windows下面,可以使用visual studio工具。在linux下面呢,实际上除了gdb工具之外,没有别的选择。那么,怎么用gdb进行调试呢?我们可以一步一步来试试看。 调试代码如下[cpp] view plaincopy#include int iterate(int value) {
2012-09-20 18:38:18
687
转载 linux下C语言多线程(五)杂项函数
在Posix线程规范中还有几个辅助函数难以归类,暂且称其为杂项函数,主要包括pthread_self()、pthread_equal()和pthread_once()三个,另外还有一个LinuxThreads非可移植性扩展函数pthread_kill_other_threads_np()。本文就介绍这几个函数的定义和使用。1. 获得本线程ID pthread_t pthread_self(
2012-09-20 18:23:40
1466
转载 linux下C语言多线程(四)线程中止
1. 线程终止方式 一般来说,Posix的线程终止有两种情况:正常终止和非正常终止。线程主动调用pthread_exit()或者从线程函数中return都将使线程正常退出,这是可预见的退出方式;非正常终止是线程在其他线程的干预下,或者由于自身运行出错(比如访问非法地址)而退出,这种退出方式是不可预见的。2. 线程终止时的清理 不论是可预见的线程终止还是异常终止,都会存在资源释放的问
2012-09-20 18:19:46
3360
转载 linux下C语言多线程(三)线程同步
一. 互斥锁 尽管在Posix Thread中同样可以使用IPC的信号量机制来实现互斥锁mutex功能,但显然semphore的功能过于强大了,在Posix Thread中定义了另外一套专门用于线程同步的mutex函数。1. 创建和销毁 有两种方法创建互斥锁,静态方式和动态方式。POSIX定义了一个宏PTHREAD_MUTEX_INITIALIZER来静态初始化互斥锁,方法如下:
2012-09-20 16:56:22
21619
转载 linux下C语言多线程(二)线程的私有数据
一. 概念及作用 在单线程程序中,我们经常要用到"全局变量"以实现多个函数间共享数据。在多线程环境下,由于数据空间是共享的,因此全局变量也为所有线程所共有。现在有一全局变量,所有线程都可以使用它,改变它的值。而如果每个线程希望能单独拥有它,那么就需要使用线程存储了。表面上看起来这是一个全局变量,所有线程都可以使用它,而它的值在每一个线程中又是单独存储的。这就是线程存储的意义。这样的数据结构可以
2012-09-20 16:55:36
5105
转载 linux下C语言多线程(一)线程的创建与取消
linux下用C开发多线程程序,Linux系统下的多线程遵循POSIX线程接口,称为pthread。#include int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void
2012-09-20 16:54:52
10430
转载 如何解决TIME_WAIT过多的解决办法(附Socket中的TIME_WAIT状态详解)
linux和windows下TIME_WAIT过多的解决办法如果使用了nginx代理,那么系统TIME_WAIT的数量会变得比较多,这是由于nginx代理使用了短链接的方式和后端交互的原因,使得nginx和后端的ESTABLISHED变得很少而TIME_WAIT很多。这不但发生在安装nginx的代理服务器上,而且也会使后端的app服务器上有大量的TIME_WAIT。查阅TIME_WAIT资料,
2012-09-18 10:53:09
36622
转载 网络编程常见问题总结 baonenghui【科学】
这里对在网络程序中遇到的一些问题进行了总结, 这里主要针对的是我们常用的TCP socket相关的总结, 可能会存在错误, 有任何问题欢迎大家提出.对于网络编程的更多详细说明建议参考下面的书籍《UNIX网络编程》《TCP/IP 详解》《Unix环境高级编程》网络编程常见问题总结相关说明 非阻塞IO和阻塞IO基本概念 设置 区别: 读:
2012-09-14 09:45:01
3152
转载 多级缓冲的服务器数据服务机制实现(二)
昨天,写了一篇关于多级缓冲服务的文章。那么今天,我们就来点实际的代码,完成以上的所有功能吧。按照昨天的思路,我需要两个程序,一个是和客户端通讯的程序,这个程序我们姑且认为它就是游戏服务器,那么,与之对应的,还有一个专门负责和后来存储介质通讯的服务进程。既然要做这道菜,先看看我们需要点什么佐料。(1)一个共享内存的类,这个类提供给我们与共享内存交互的功能,对外的接口需要,获得一个内存
2012-09-03 17:10:22
1458
转载 多级缓冲的服务器数据服务机制实现(一)
很早就想写一篇这样的文章,可是第一工作较忙,第二,想用自己的开源服务器作为蓝本实现。由于自己前一段时间较忙,再加上自己也懒了一下,决定在这里补上,提供给大家参考。作为我将写出的"网络游戏服务器核心服务开发"的一部分(等我慢慢原创出来),希望通过这些文章,你可以大概了解以及学会如何开发一个高效的游戏服务器体系,并成组合在胸,其实游戏服务器做到极致就是简洁高效,减少复杂,这也是我开发的信条之一,如果你
2012-09-03 17:09:14
1014
转载 无缝游戏世界
过去一年中,花了很多时间在考虑服务器架构设计方面的问题。看了大量文章、也研究了不少开源项目,眼界倒是开阔了不少,不过回过头来看,对网游架构设计方面的帮助却是不多。老外还是玩儿console game的多,MMO Games方面涉及的还是不如国内广泛。看看Massively Multiplayer Games Development1 & 2这两本书吧,质量说实话很一般,帮助自然也很有限。当
2012-09-03 11:31:04
2501
转载 服务器设计,开发的体会
做服务器有一段时间了,想记录下自己的体会。依我的看法,服务器可以看做是4个部分组合起来的, 底层的网络框架, 通用的数据结构和库, 整个服务器的架构设计,服务器的上层业务逻辑。 底层的网络框架,目前可以说技术基本都是公开的了, 可以自己从头写,采用iocp,epoll。也可以直接使用ace, libevent 或者asio,如果是linux下,我觉得libevent是个非常好的选择
2012-09-03 10:36:58
608
转载 Boost::asio io_service 实现分析
io_service的作用io_servie 实现了一个任务队列,这里的任务就是void(void)的函数。Io_servie最常用的两个接口是post和run,post向任务队列中投递任务,run是执行队列中的任务,直到全部执行完毕,并且run可以被N个线程调用。Io_service是完全线程安全的队列。Io_servie的接口提供的接口有run、run_one、poll、poll_
2012-08-29 11:08:07
591
转载 public private 和protected 继承
在C++中继承主要有三种关系:public、protected和private。这三种继承关系中public继承是最为常用的一种继承关系,private继承是最少见的继承关系。1. public从语义角度上来说,public继承是一种接口继承,根据面向对象中的关系而言就是,派生类可以代替基类完成基类接口所声明的行为,也就是必须符合“Liskov替换原则(LSP)”,此时派生类可以自动转
2012-08-29 10:51:27
663
转载 ubuntu 查看计算机硬件信息的命令
测试机器的硬件信息:查看CPU信息(型号)# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c8 Intel(R) Xeon(R) CPU E5410 @ 2.33GHz(看到有8个逻辑CPU, 也知道了CPU型号)# cat /proc/cpuinfo | grep physical | uniq -c4
2012-08-28 17:03:59
5967
转载 提高 Linux 上 socket 性能
在开发 socket 应用程序时,首要任务通常是确保可靠性并满足一些特定的需求。利用本文中给出的 4 个提示,您就可以从头开始为实现最佳性能来设计并开发 socket 程序。本文内容包括对于 Sockets API 的使用、两个可以提高性能的 socket 选项以及 GNU/Linux 优化。为了能够开发性能卓越的应用程序,请遵循以下技巧:最小化报文传输的延时。最小化系统调用的负载。为
2012-08-28 15:54:27
603
转载 undefined reference to涉及的链接问题
在linux下,编译链接的时候,经常会遇到这样一个问题,undefined reference to.....,引起这个问题的原因在于在链接的时候缺少选项。下面举几个例子,并给出解决办法。1、undefined reference to `dlerror' undefined reference to `dlopen' undefined reference to `d
2012-08-23 16:05:24
541
linux线程池的C语言实现
2012-02-27
apache2安装与配置
2012-02-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人