linux
文章平均质量分 67
Enockipp
目前小硕在读中
展开
-
玩转Google开源C++单元测试框架Google Test系列(gtest)之六 - 运行参数
转自http://www.cnblogs.com/coderzh/archive/2009/04/10/1432789.html一、前言使用gtest编写的测试案例通常本身就是一个可执行文件,因此运行起来非常方便。同时,gtest也为我们提供了一系列的运行参数(环境变量、命令行参数或代码里指定),使得我们可以对案例的执行进行一些有效的控制。二、基本介绍前面提到,转载 2016-11-01 09:17:23 · 1365 阅读 · 0 评论 -
FreeTDS的安装与配置--linux下链接mssql
转自http://blog.csdn.net/kunp/article/details/387013在linux下连接MSSQL是一件很痛苦的事,因为微软同志没有提供任何接口给开发人员,大约他们认为要用MSSQL的,只可能是windows的操作系统。还好,MSSQL是从Sybase衍生出来的,有一些哥们做了一些Sybase的Linux下的连接库,这些连接库同时也能支持MSSQL,FreeTDS转载 2013-10-10 16:23:04 · 6001 阅读 · 0 评论 -
linux中select poll epoll的区别比较
在Linux Socket服务器短编程时,为了处理大量客户的连接请求,需要使用非阻塞I/O和复用,select、poll和epoll是Linux API提供的I/O复用方式,自从Linux 2.6中加入了epoll之后,在高性能服务器领域得到广泛的应用,现在比较出名的nginx就是使用epoll来实现I/O复用支持高并发,目前在高并 发的场景下,nginx越来越收到欢迎。这里有个文章参考。Ngin转载 2014-04-26 16:44:07 · 1404 阅读 · 0 评论 -
关于select函数中timeval和fd_set重新设置的问题
select原型: int select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); 和select模型紧密结合的四个宏:FD_CLR(int fd, fd_set *set);FD_ISSET(int fd, fd_set *set);转载 2014-04-24 22:38:00 · 1452 阅读 · 0 评论 -
gdb调试程序
转自:http://blog.csdn.net/haoel/article/details/2879转载 2014-04-17 22:58:01 · 779 阅读 · 0 评论 -
linux下测试磁盘的读写IO速度
有时候我们在做维护的时候,总会遇到类似于IO特别高,但不能判定是IO瓶颈还是软件参数设置不当导致热盘的问题.这时候通常希望能知道磁盘的读写速度,来进行下一步的决策.下面是两种测试方法:(1)使用hdparm命令这是一个是用来获取ATA/IDE硬盘的参数的命令,是由早期Linux IDE驱动的开发和维护人员 Mark Lord开发编写的( hdparm has been writte转载 2014-04-02 09:58:51 · 1246 阅读 · 0 评论 -
linux c语言 system系统调用与popen的使用
system系统调用有很多诟病,很多人推荐使用popen1.popen的函数原型为:#includeFILE*popen(const char* command,const char* type);popen的实现是:通过fork产生一个子进程,然后子进程来执行command对应的命令,并且创建了一个管道,这个管道的作用是实现这个子进程与调用进程之间的命令、参数以及返回值的传递(本原创 2014-02-23 17:09:19 · 4710 阅读 · 0 评论 -
linux C语言函数之strtok和strtok_r
1.一个应用实例网络上一个比较经典的例子是将字符串切分,存入结构体中。如,现有结构体typedef struct person{ char name[25]; char sex[10]; char age[4]; }Person;需从字符串 char buffer[INFO_MAX_SZ]="Fred male 25,John male 62,Anna female转载 2014-02-23 21:32:16 · 5456 阅读 · 0 评论 -
TCP协议连接建立与连接断开过程
在写socket程序的时候,遇到SIGPIPE,网上找资料,很多都提到FIN包和RST包,遂搜了下TCP的连接建立与断开过程--------------------------------------------分割线-----------------------------------------------根据TCP头部,说明下列3个包在连接建立过程中的次序.0020转载 2014-01-14 15:25:10 · 1324 阅读 · 0 评论 -
socket编程中的read、write与recv、send的区别
1 recv和sendrecv和send函数提供了和read和write差不多的功能.但是他们提供 了第四个参数来控制读写操作.int recv(int sockfd,void *buf,int len,int flags)int send(int sockfd,void *buf,int len,int flags)前面的三个参数和read,write相同,第四个参数能够是0或是转载 2014-01-14 10:18:19 · 2727 阅读 · 0 评论 -
linux_c之ioctl的FIONREAD参数
ioctl 是用来设置硬件控制寄存器,或者读取硬件状态寄存器的数值之类的。而read,write 是把数据丢入缓冲区,硬件的驱动从缓冲区读取数据一个个发送或者把接收的数据送入缓冲区。FIONREAD就是返回缓冲区中有多少字节;ioctl(keyFd, FIONREAD, &b)得到缓冲区里有多少字节要被读取,然后将字节数放入b里面。接下来就可以用read了,read(keyFd,转载 2014-01-12 20:46:35 · 3231 阅读 · 0 评论 -
fork子进程复制了父进程什么
转自:http://www.cnblogs.com/zhangchaoyang/articles/2317420.html子进程复制了父进程的什么如果你对代码段、数据段、栈、堆存放哪些数据还不是很清楚,请先看我写和Linux 内存管理。有时会出现父子进程变量的地址一样,但值不一样。看下面代码:#include#includestring.h>#include#转载 2013-11-12 19:53:17 · 1468 阅读 · 0 评论 -
win7下双系统的安装(linux:centos6.2)--最简单的硬盘方式(easyBCD)
需要的软件1.easyBCD2.linux镜像为CentOS-6.2-i386-bin-DVD1.iso和CentOS-6.2-i386-bin-DVD2.iso步骤:1.需要注意的是镜像文件需要放置在fat32格式分区下,还有将第一个镜像文件中的initrd.img和vmlinuz拷贝到c盘下,将第一个镜像文件中images解压到存放镜像的根目录2.将空闲磁盘的一部分压缩出来原创 2013-08-20 22:23:01 · 2527 阅读 · 0 评论 -
mdsplus之通过C和C++远程访问
首先当然需要将远程mdsplus服务器防火墙的相应端口开放,或者关闭防火墙。说明,下面中本地IP为202.127.202.142 远程mdsplus服务器IP为202.127.204.220一、C语言中的远程访问mdsplus1.在程序中先connect服务器,再open打开相应树,并且这种情况下在本地可以配置要打开tree的环境变量原创 2013-11-11 20:34:54 · 1768 阅读 · 0 评论 -
Linux生成动态链接库的-fPIC参数问题
在 Linux 下制作动态链接库,“标准” 的做法是编译成位置无关代码(Position Independent Code,PIC),然后链接成一个动态链接库。经常遇到的一个问题是 -fPIC 是不是必需,因为好像不加经常也能正常运行,只是创建 .so 的时候会有一个警告。搜索、试验了一下,答案似乎是这样:(1) 通常的建议是始终加上 -fPIC 生成位置无关代码;(2)转载 2014-06-06 16:39:25 · 1795 阅读 · 0 评论 -
linux C编程入门之静态链接库、动态链接库的编译与链接
参考1.Linux生成动态链接库的-fPIC参数问题原创 2014-06-06 20:41:21 · 1119 阅读 · 0 评论 -
linux学习之cut命令参数解析--可以借鉴这种命令行参数格式
cut是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的。(1)其语法格式为:cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file]使用说明cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。如果不指定 Fi转载 2014-08-04 21:34:55 · 1553 阅读 · 0 评论 -
Linux动态加载动态链接库
函数 描述#include头文件定义如下四个函数dlopen 使对象文件可被程序访问dlsym 获取执行了 dlopen 函数的对象文件中的符号的地址dlerror 返回上一次出现错误的字符串错误dlclose 关闭目标文件 dlopen函数返回一个句柄,该句柄用于后续的 API 调用。dlopen的原型为:#includevoi转载 2016-10-25 15:10:06 · 665 阅读 · 0 评论 -
shell中test命令用法详解
test命令用法。功能:检查文件和比较值 1)判断表达式 if test (表达式为真) if test !表达式为假 test 表达式1 –a 表达式2 两个表达式都为真 test 表达式1 –o 表达式2 两个表达式有一个为真 2)判断字符串 test转载 2016-10-25 09:37:19 · 508 阅读 · 0 评论 -
rsync error: protocol incompatibility / mismatch ?
1、问题今日在维护集群环境的时候,遇到了一个小问题,rsync 向集群中的机器传输文件的时候报错:protocol version mismatch -- is your shell clean?(see the rsync man page for an explanation)rsync error: protocol incompatibility (code 2) at c转载 2016-08-10 09:24:44 · 2710 阅读 · 2 评论 -
svn checkout单个文件(refers to a file, not a directory)
http://www.letuknowit.com/archives/svn-checkout-single-file/有时候需要在svn版本仓库中某个比较上层的目录中(比如根目录)checkout某一个文件,例如下面的svn版本仓库中,我们需要checkout名为readme.txt的文件,而其他的几个文件夹中都有很多内容,如果我们直接checkout根目录的所有内容,肯定是不合算的。转载 2016-02-17 13:09:42 · 4281 阅读 · 0 评论 -
类成员函数作为pthread_create函数参数
转自http://blog.csdn.net/luo6620378xu/article/details/8521940近日需要将线程池封装成C++类,类名为Threadpool。在类的成员函数exec_task中调用pthread_create去启动线程执行例程thread_rounter。编译之后报错如下:spfs_threadpool.cpp: In member functi转载 2016-01-14 11:30:24 · 2356 阅读 · 0 评论 -
svn: File has binary mime type property的解决办法
修改~/.subversion/config 找到最后一个section,在最后加上如下一行话: *.txt = svn:mime-type=text/plain;svn:eol-style=native 光这个还不够,向上搜索到这么一行 # enable-auto-props = yes 把前面用来注释这行的那个#和其后的空格去掉转载 2016-01-29 17:46:24 · 1466 阅读 · 0 评论 -
linux sed命令详解
1.简介sed是非交互式的编辑器。它不会修改文件,除非使用shell重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上。sed编辑器逐行处理文件(或输入),并将结果发送到屏幕。具体过程如下:首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓冲区中的行,完成后把该行发送到屏幕上。sed每处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行转载 2015-12-21 22:35:50 · 671 阅读 · 0 评论 -
linux—vi编辑器常用命令
vi是一款功能强大的编辑器,熟悉它的命令,能显著提高我们的码字效率,下面总结下我自己常用到的Vi命令:1.跳跃命令gg:跳到文件头部;G:跳到文件尾部;n gg:跳到第n行2.开辟新行o:在当前行下面开辟一新行;O:在当前行上面开辟一新行;3.复制n yy :复制从当前行起的n行;4.粘贴p(小写):在当前行下面粘贴;P:在当前行上面粘贴;5:原创 2013-09-30 20:45:27 · 2267 阅读 · 0 评论 -
Linux使用expect实现免手工密码输入
使用expect实现自动登录的脚本,网上有很多,可是都没有一个明白的说明,初学者一般都是照抄、收藏。可是为什么要这么写却不知其然。本文用一个最短的例子说明脚本的原理。 脚本代码如下: ############################################## #!/usr/bin/expect set timeout 30 spawn ss转载 2015-07-27 11:10:26 · 3108 阅读 · 0 评论 -
snmp++库编译安装与snmp的安装配置
转自:http://blog.csdn.net/youngqj/article/details/74588461.下载libdes-l-4.01a.tar.gz http://download.csdn.net/detail/xhu_eternalcc/8383389snmp++v3.2.25.tar.gz http://download.csdn.net/de转载 2015-01-21 15:58:55 · 4016 阅读 · 4 评论 -
Linux NX 安装与配置 NoMachine
1. 服务器端1.1 安装首先需要在linux上安装nx软件包,我这里是在CentOS6x上做的测试,运行下面命令来安装软件包[plain] view plaincopyprint?$ sudo yum install nx freenx 1.2 初始化首先切换到root用户,然后运行下面命令来初始化转载 2014-05-25 15:27:44 · 5799 阅读 · 0 评论 -
EPICS之一个简单的设备支持程序
最近看EPICS的开发手册,因为手册中是分模块介绍的,所以看了一段时间还是写不出程序来,昨天去让师兄给我以具体的设备支持的例子讲述了下(因为我们室主要用到的还是设备支持),下面是构建设备支持程序的步骤,类似于一个Hello World程序,给同样在入门道路上的朋友一个参考。1. 像ai、bi等这些类型的记录支持,EPICS已经提供,一般情况下不需要我们自己code,我们经常需要写的是原创 2013-12-24 10:58:07 · 5398 阅读 · 0 评论 -
linux下安装软件--yum命令
在RedHat,fedora和centos中支持yum,使用yum来安装软件很方便,下面是yum的使用方法:1.yum的软件仓库(repository)在安装yum的时候,yum会建立它的软件仓库,可以通过yum repolist来查看有哪些,yum库的定义目录为/etc/yum.repos.d,一般情况下,这些预装的库能满足我们的需要,如果自己添加repository需要相应URL和密钥原创 2013-10-27 09:33:18 · 5300 阅读 · 0 评论 -
lvs负载均衡技术介绍
摘自:2. 服务器集群系统 对称多处理(Symmetric Multi-Processor,简称SMP)是由多个对称的处理器、和通过总线共享的内存和I/O部件所组成的计算机系统。SMP是一种低并行度的结构,是我们通常所说的"紧耦合多处理系统",它的可扩展能力有限,但SMP的优点是单一系统映像(Single System Image),有共享的内存和I/O,易编程。 由于转载 2014-08-11 13:55:29 · 1105 阅读 · 0 评论 -
linux下libevent安装配置与简介 以及 linux库文件搜索路径的配置
libevent简介libevent下载libevent安装简单shili原创 2014-05-30 10:13:19 · 6476 阅读 · 0 评论 -
usr/bin/ld: cannot find -lxxx的错误解决办法
参考:http://blog.siyebocai.cn/20100324_5p424qs7.html 通常在软件编译时出现的usr/bin/ld: cannot find -lxxx的错误,主要的原因是库文件并没有导入的ld检索目录中。 解决方式: 1。确认库文件是否存在,比如-l123, 在/usr/lib, /usr/local/lib,或者其他自定义的lib转载 2013-11-10 16:07:15 · 1323 阅读 · 0 评论 -
linux进程通信IPC之IPC_PRIVATE与ftok比较
在linux中,可以使用IPC对象来进行进程间通信。IPC对象存在于内核中,多进程可以操作同一个IPC对象。每个IPC对象都有一个唯一的编号,该编号是由系统分配的。那么不同的进程如何知道这个编号,进而通过它进行通信呢?下面以共享内存为例,进行分析。方法一:通过ftok函数,产生相同的键值。假设,进程p1创建了共享内存。可以在创建时,调用ftok函数,得到一个key值,调用s转载 2013-11-18 10:59:30 · 14839 阅读 · 0 评论 -
linux下信号列表:信号名及解释
转自:http://blog.csdn.net/baobao8505/article/details/1115820我们运行如下命令,可看到Linux支持的信号列表:$ kill -l1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBU转载 2013-11-20 08:45:11 · 1155 阅读 · 0 评论 -
关于线程和父子进程的一些个人理解
首先需要明白的是:1.子进程和父进程的数据段是独立的,代码段是共享的; 2.子进程是父进程的拷贝(包括pc,所以在父进程执行到fork的时候,创建的子进程也是从fork下一条语句开始执行); 3.父进程终止,子进程会被指定一个新的父进程init(其PID为1);原创 2013-10-12 15:28:16 · 1484 阅读 · 0 评论 -
Linux下常用头文件示意
linux常用头文件如下:POSIX标准定义的头文件 目录项 文件控制 文件名匹配类型 路径名模式匹配类型 组文件 网络数据库操作 口令文件 正则表达式 TAR归档值 终端I/O 符号常量 文件时间 字符扩展类型------------转载 2013-09-27 10:08:44 · 793 阅读 · 0 评论 -
vim中执行shell命令小结
vim中执行shell命令小结vim中执行shell命令,有以下几种形式 www.2cto.com 1):!command不退出vim,并执行shell命令command,将命令输出显示在vim的命令区域,不会改变当前编辑的文件的内容例如:!ls -l特别的可以运行:!bash来启动一个bash shell并执行命令,不需要退出vim2)转载 2013-09-26 16:36:37 · 1152 阅读 · 0 评论 -
struct tm和time_t总结
转自:http://zhouruijun163.blog.163.com/blog/static/1077156200910300330794/1.概念在C/C++中,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有许多值得大家注意的地方。最近,在技术群中有很多网友也多次问到过C++语言中对时间的操作、获取和显示等等的问题。下面,在这篇文章中转载 2013-10-10 20:59:19 · 1174 阅读 · 0 评论 -
查找目录下文件中是否包含某字符串的shell脚本
最近几天在看前几届师兄写的一个项目,经常需要查找变量和函数的定义,一直用命令find ./ -type f -print|xargs grep 查找内容,感觉很不灵活,正好打算学习shell,就自己写了个shell脚本,在此作下记录。此shell的功能是查找某个目录下的所有文件中包含某个字符串的行,并以“文件名-行号”显示:这个项目目录下只有一层子目录,所以这个shell中只考虑了两层目录,还原创 2013-10-09 21:34:50 · 4825 阅读 · 2 评论