Linux
lixin_4055
这个作者很懒,什么都没留下…
展开
-
GCC中switch的扩展
在gcc环境下可以使用下面的语法switch{case 1 ... 5:break;case 6 ... 8:break;default:break;}但是每个case区间不能重复。这种扩展可以优化那种有大段if else的代码原创 2011-08-31 18:18:07 · 911 阅读 · 0 评论 -
centos时区设定的问题
在centos环境下设定时区 只要将/usr/shar/zoneinfo/目录下指定时区文件复制到 /etc目录下并命名为localtime即可但是必须重启才有效或者在.bash_profile中添加 TZ=“Shanghai”; export TZ也可以有同样效果,但是这种方法需要对每个用户单独设定原创 2013-07-30 13:46:32 · 520 阅读 · 0 评论 -
vim+ctags
原文出处:http://linux.chinaunix.net/techdoc/develop/2008/07/28/1021345.shtml==============================================================================================================================转载 2013-08-20 16:05:25 · 513 阅读 · 0 评论 -
linux 常用sell 语句
文件读取cat 文件名|while read lineecho $linedone取算术运算结果echo $[4+5]输出为9if语句一般格式为if[ val1 operator val2 ]thenelsefi运算符列出如下:转载自(http://www.linuxidc.com/Linux/2012-02/54420.htm)原创 2013-08-13 12:45:02 · 1804 阅读 · 0 评论 -
mysql 死锁相关的查询指令
1、查看当前的数据库连接数show processlist;2、查看Innodb的所有状态show engine innodb status\G;原创 2013-09-10 20:39:55 · 543 阅读 · 0 评论 -
关于数据库编码的一些问题
数据库移植时,需要确保导入的数据的编码格式与目标数据库的默认编码方式一致,否则会导致乱码现象。数据库移植时可以按指定编码方式导出所有数据mysqldump --default-character=‘xxx’还可以加-d不导出建表数据。一般导出的建表语句会加入默认的编码选项,这一点在不同编码格式的数据库之间转移数据时需要格外注意。再一个就是同一个库中的所有表格最好用统一的编码方式,否原创 2013-09-11 22:45:52 · 693 阅读 · 0 评论 -
关于memset的使用
最近遇到一个比较诡异的问题,内存池对象经常在出刷的时候挂掉最后发现这些对象的虚函数表都是空的然后各种调试发现对象获取之后调用了memset而这些类都是继承类。总结如下:memset会把对象指针开始到对象size大小的空间全部置0,因此如果这个对象的类型是继承自某个类时,他的虚函数表也会被清理掉。因此再c++中尽量不要使用memset处理对象,而应该调用对象的构造函数原创 2013-09-26 13:48:10 · 571 阅读 · 0 评论 -
gdb 查看core文件时的一些操作
可以使用while、for这样的循环指令输出大量数据也可以用set $var_name=val的方式定义变量原创 2013-09-26 15:30:59 · 1005 阅读 · 0 评论 -
linux 环境下svn忽略文件的设置
一般需要先加入一个环境变量在~/.bash_profile中加入export SVN_EDITOR=vim即可修改完需要重新登录(因为修改完之后bash_profile不会立即生效)svn propedit svn:ignore 文件夹名/进入编辑页面后把需要忽略的文件一行写一个就可以了,可以使用通配符,但是不能设定子文件夹中的内容原创 2013-09-06 15:05:10 · 1692 阅读 · 0 评论 -
centos6.4安装gcc4.8.2
按照这个文章操作http://www.cnblogs.com/codemood/archive/2013/06/01/3113200.html直接调用./contrib/download_prerequisites有时候不行,因为网络的缘故下载不到可以打开那个脚本文件直接去gcc的官网的镜像资源站点手动下载响应的依赖库,然后手动执行脚本代码即可但是中途遇到一些问题我的机器是原创 2013-12-06 15:14:51 · 831 阅读 · 0 评论 -
CentOS6.5安装redmine+apache记录
首先按照官网的提示安装一些依赖库yum -y install zlib-devel curl-devel openssl-devel httpd-devel apr-devel apr-util-devel mysql-develyum -y install ruby-devel ruby-irb ruby-rdoc ruby-ri然后安装ruby跟rubygemsruby原创 2014-02-11 15:07:32 · 1298 阅读 · 0 评论 -
gdb调试的时候的一些问题
最近调试代码的时候发现两个问题1、断点到某个类的成员函数,提示成员函数不存在,而事实上输入类名按Tab建已经列出了这个成员函数。2、用行号的方式断点进入此函数,打印某个临时变量时提示变量不存在,按l时源代码中却有这个变量。3、代码执行过make clean all之后仍然是这样的问题,CXXFLAG里面有 “-g”标志解决方法:加入-gstabs+ 编译选项链接http原创 2014-02-14 14:05:51 · 719 阅读 · 0 评论 -
gcc升级到4.8.2之后调试异常的处理方法
gcc升级到4.8.2之后gdb调试出现了问题具体表现:1、程序运行没有问题2、无法通过成员函数名断点3、通过行号断点后,各种变量无法打印,或者打印结果混乱于是搜索,说是修改编译选项增加-gstabs+结果可以通过成员函数名断点,但是变量输出仍然异常。继续搜索,差不多找到了原因,gdb版本太低,默认的gcc是4.4,而gdb是7.2。gcc升级之后导致gdb出现异常。原创 2014-02-17 17:03:06 · 1368 阅读 · 0 评论 -
mongodb的安装与链接
可以通过加入mongodb的yum源直接下载安装mongodb,但是没有c++驱动。比起编译源码这个要快得多。官网给的源码说是包含c++驱动,但是事实上编译后没有这个东西,需要单独下载编译。编译c++驱动需要scons 2.3(基于python), pyhotn 2.7+,boost,网上有些文章说必须要用1.49版本,实际上目前的mongodb的c++驱动可以用最新版本的boost库编译原创 2015-02-24 01:49:11 · 590 阅读 · 0 评论 -
调用Shell脚本无法正常退出的问题处理
做一些服务器部署的时候出现的一系列问题使用sshpass执行脚本时,无法退出使用php system,exec,之类的的shell调用函数无法退出的问题当执行的脚本没有后台任务时,不会有任何问题一旦出现无限循环的后台进程则会卡住不动比如test1.sh的内容如下#!/bin/bashwhile truedoecho "it's in loop"sleep 1原创 2015-03-27 12:17:52 · 5910 阅读 · 0 评论 -
linux中无法生成core文件的解决方法
在linux系统中,如果程序运行崩溃,可以通过系统生成的core文件查看崩溃时的堆栈情况但是一般的系统默认是不生成core文件的这个设定可以用ulimit -a查看如果core file size 这一行为0则不会生成core文件可以手动修改ulimit命令:ulimit -c unlimited设定创建的core文件大小为无限制但是当你注销账号重登陆后发现这个值并没有原创 2013-06-28 17:13:54 · 3577 阅读 · 0 评论 -
比较通用makefile文件写法
CC = g++ FLAGS = -Wall -gINCLUDE = -I./ALLSRC:=$(wildcard *.cpp)ALLOBJ:=$(patsubst %.cpp, %.o, $(ALLSRC)) TARGET = program all: $原创 2011-08-31 18:02:10 · 411 阅读 · 0 评论 -
linux crontab命令参数及用法详解
原文:http://www.linuxso.com/command/crontab.html http://www.linuxso.com/command/crontab.html如果发现您的系统里没有这个命令,请安装下面两个软件包.vixie-croncrontabscrontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。-转载 2013-07-15 11:12:54 · 545 阅读 · 0 评论 -
关于samba的配置问题
1、开启防火墙端口,一般开445就可以了2、修改samb的配置文件,位置是/etc/samba/smb.conf将里面的setsebool -P samba_domain_controller onsetsebool -P samba_enable_home_dirs on这两行的注释取消掉之后重启便可3、添加用户smbpasswd -a 用户ID4、很多时候在wind原创 2013-07-15 09:27:08 · 515 阅读 · 0 评论 -
linux中无法生成core文件的解决办法
最近在ubuntu11上做开发但是默认情况下是不生成core文件的网上找了很久,终于搞定,特此记录,以便之后查询ulimit -a查看core文件相关属性设置ulimit -c unlimit开启coredump 并设置dump文件大小为无限制如需要先知dump文件大小可以用数字替换unlimit 如 ulimit -c 1024core文件名控制原创 2012-10-30 21:43:54 · 3550 阅读 · 0 评论 -
关于date的应用
$ dateTue Feb 3 11:29:00 CST 2009--把时间转成秒数$ date +%s1233631748--把秒数转换成标准时间格式(方法1)$ date -d '1970-1-1 0:0:0 GMT + 1233631748 seconds'Tue Feb 3 11:29:08 CST 2009--把秒数转换成标准时间格式(方法2)转载 2012-11-09 14:49:46 · 567 阅读 · 1 评论 -
关于客户端发送给epoll模型的服务器,卡send时的一个问题
当时server端把数据接收缓存大小设置成了0,因此服务端收到数据后如果没有马上被处理则会卡住客户端的send,因为客户端使用了同步方式发送数据。不设定接收端的接收缓冲大小,使用默认值是,此问题得到解决。可能还有其他问题,暂时做记录,之前写过一篇,今天来找时已经找不到了,不知何故,特此补充记录原创 2013-03-13 19:51:25 · 966 阅读 · 0 评论 -
关于多线程多连接的问题
当使用多线程多连接做数据库服务器时,出现了一个问题,数据库连接数设定为64时,不会响应客户端消息原因是我做了最大连接数限制为100,网络层遇到fd大于这个值(100)时,判定无效fdgdb检查发现新连进来的客户端fd已经超过100,当时是134此处忘记了连接到mysql服务器其实也是用socket但是我只设定了64个连接,理论上不会用到100以上最终把连接限制设定到200,问题原创 2013-03-28 20:39:56 · 1137 阅读 · 0 评论 -
关于mysql_query导致连接断开的问题
当执行一条带数据结果返回的查询时,需要把缓冲中的结果集都读出来,不然会导致错误引起连接断开另外连接断开后马上连接不一定会成功原创 2013-03-28 19:35:35 · 779 阅读 · 0 评论 -
mysql 的存储过程中的 用户变量也是大小写不敏感的。。。。
标记一下,调试了一个早上,怎么调都感觉不对,原来有这毛病。。。原创 2013-03-18 12:21:41 · 572 阅读 · 0 评论 -
利用 gprof2dot 和graphviz 图形化定位linux c/c++系统性能瓶颈
原自点击打开链接1 下载 http://code.google.com/p/jrfonseca/wiki/Gprof2Dothttp://jrfonseca.googlecode.com/svn/trunk/gprof2dot/gprof2dot.py 下载gprof2dot.py http://www.graphviz.org/Download_source.php下载源代转载 2013-04-01 16:02:54 · 1689 阅读 · 0 评论 -
gprof使用详细介绍
原文来自:点击打开链接gprof介绍gprof是GNU profiler工具。可以显示程序运行的“flatprofile”,包括每个函数的调用次数,每个函数消耗的处理器时间。也可以显示“调用图”,包括函数的调用关系,每个函数调用花费了多少时间。还可以显示“注释的源代码”,是程序源代码的一个复本,标记有程序中每行代码的执行次数。基本用法:1. 使用-pg选项编译和链接你的应用转载 2013-04-01 14:20:51 · 608 阅读 · 0 评论 -
error while loading shared libraries的解決方法
Programming行程式時,如此遇到像下列這種錯誤: ./tests: error while loading shared libraries: xxx.so.0:cannot open shared object file: No such file or directory那就表示系統不知道xxx.so 放在哪個目錄下。這個時候就要在/etc/ld.so.co转载 2013-03-20 15:43:28 · 506 阅读 · 0 评论 -
创建库文件的ctag标签
#!/bin/shctags -I __THROW --file-scope=yes --langmap=c:+.h --languages=c,c++ --links=yes --c-kinds=+p --fields=+S -R -f~/.vim/systags /usr/include /usr/local/include /usr/local/mysql/include原创 2013-04-07 09:33:02 · 709 阅读 · 0 评论 -
数据库服务器处理大量请求响应很慢时的可能解决方法
由于数据库操作是阻塞同步的,因此当一条sql语句处理较长时间时会导致整体处理很慢一般的解决方法是增加数据库连接数。实际上是增加线程,每个线程一个连接一般在mysql占用cpu不高的情况下可以不断增加连接跟线程,以提高处理速度mysql的最大连接数也是有限制的,当需要的连接数较多时需要修改这个值最佳的连接数 配比应该是,保证批量请求时mysql的cpu占用率达到50%左右过高可能原创 2013-03-28 19:30:10 · 8317 阅读 · 0 评论 -
Linux下crontab命令的用法
出处:http://www.cnblogs.com/jiafan/articles/1153066.html任务调度的crond常驻命令crond 是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。而linux任务调度的工作主要分为以下两类:1、系统执行的工作:转载 2013-05-21 11:56:48 · 458 阅读 · 0 评论 -
用shell修改crontab
crontab -l > /tmp/crontab.bakecho 'something new...' >> /tmp/crontab.bakcrontab /tmp/crontab.bak转载 2013-05-21 12:46:03 · 1176 阅读 · 0 评论 -
关于大数据量阻塞式发送卡住的解决方法
最近做一个服务器间的通讯通讯客户端使用阻塞方式发送数据,发送频率较低时,一切正常。但是频率提高后就会导致send函数长时间保持阻塞状态。接收端服务器采用epoll模型,接收缓冲区设成了0。研究好了好几天没有答案,经过各种尝试之后发现,把接收缓冲区设成非零(我是取消了缓冲区大小设定,使用默认值)之后send函数不会再被阻塞。原因推测:服务端接收到第一个数据后要对数据做处理,此原创 2013-06-26 23:18:58 · 2498 阅读 · 0 评论 -
linux中查看指定进程socket连接数的指令
转自:http://bbs.csdn.net/topics/110183082ls /proc//fd -l | grep socket: | wc -l转载 2013-06-26 23:18:19 · 12056 阅读 · 0 评论 -
关于 c++ 静态链接
静态链接的时候,各个库的顺序是有讲究的如果A库对B库有依赖,A库必须放在B库之前,否则会出现undefined reference to `xxx'的错误并且,静态链接需要额外显示指明依赖类库原创 2016-12-22 17:01:59 · 337 阅读 · 0 评论