自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 Linux/Ubuntu sudo不用输入密码的方法

经常输入sudo 麻烦的用户, 可以用下面步骤取消密码Step 1: 修改文件sudo vi /etc/sudoersStep 2: 注释# 下面%sudo all=(all:all) allStep 3: 添加下面新命令到文件最下面  %sudoALL=NOPASSWD:ALLStep 4:用 wq! 来保存修改前提

2016-08-31 12:22:51 8639

转载 Linux strace命令

strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。输出参数含义root@ubuntu:/usr# strace cat /d

2016-07-05 14:30:08 282

转载 awk 求最大值,平均值,最小值

统计类命令还是挺有用的http://www.jb51.net/LINUXjishu/287783.html、求和复制代码代码如下:cat data|awk '{sum+=$1} END {print "Sum = ", sum}'2、求平均复制代码代码如下:cat data|awk '{

2016-03-27 11:27:33 774

原创 GSL library 安装 in Ubuntu 14.04 (附gamma 分布的随机函数)

GSL 库对于很多科学运算支持的比较好,比如很多不同的概率分布产生Steps:1. Download gsl-1.6.tar.gz from ftp://ftp.gnu.org/gnu/gsl/2. Extract (tar -zxvf gsl-1.6.tar.gz)3. Create (mkdir) the folder "gsl" where you want to insta

2016-03-11 12:34:58 2125

转载 Linux split cat 分割和合并文件的指令

将一个大文件分成若干个小文件方法例如将一个BLM.txt文件分成前缀为 BLM_ 的1000个小文件,后缀为系数形式,且后缀为4位数字形式先利用wc -l BLM.txt       读出 BLM.txt 文件一共有多少行再利用 split 命令split -l 2482 ../BLM/BLM.txt -d -a 4 BLM_将 文件 BLM.txt

2016-02-29 07:17:37 4027

转载 同时输出屏幕和文件 linux命令tee

推荐一个很好用但是不一定每个人都知道的linux指令如果你在linux下希望将程序或命令运行的信息,在输入到文件的同时,也能够显示在屏幕上,你可以考虑使用tee这个命令。下图是对这个命令的形象介绍:上图的解释是:ls -l 的输出重定向到 tee, tee 用于将内容存入file.txt文件,管道符号将内容输出到less命令;上图很像一个大写T,因此该命

2016-02-26 14:33:45 1949

转载 linux iptables防火墙常用规则整理收集

这里是一个朋友在使用linux系统时的一些常用到的iptables防火墙规则整理了一篇文章,下面我转过来作记录的同时也给各位同学参考参考。安装iptables防火墙如果没有安装iptables需要先安装,CentOS执行:yum install iptablesDebian/Ubuntu执行:apt-get install iptables清除已

2016-02-24 08:57:09 374

原创 GDB watch if var !=value

有一个内存越界的bug找了2天才找到,最后还是通过借助gdb的帮助,利用watch if 来跟踪某个值什么时候不等于期望值,从而跟踪到越界指令。reproduce a bug 是找到bug的的第一步,然后再通过一些跟踪调试工具来找到原因。这个bug算是我目前为止遇到最复杂的了,因为有一定的随机性,所以一开始要找到产生bug时的seed,然后再reproduce the bug ,如

2016-02-18 13:38:32 2170

转载 在Linux信号处理中longjmp和siglongjmp

以下是我网上搜索到的,觉得写的还行,记录下来以供以后查阅。相关函数:longjmp, siglongjmp, setjmp 表头文件:#include  函数定义:int sigsetjmp(sigjmp_buf env, int savesigs) 函数说明:sigsetjmp()会保存目前堆栈环境,然后将目前的地址作一个记号,而在程序其他地方调用siglongj

2016-02-10 14:54:40 1437

原创 C语言的STL 库

今天推荐一个函数库glib 注意不是glibc https://developer.gnome.org/glib/一直在抱怨,标准C中为什么没有类似于STL的标准容器,让全世界的程序员在数以万次的重复实现它们。不过,还算走运,有了glib,恶梦在此终结了。glib提供了动态数组、单/双向链表、哈希表、多叉树、平衡二叉树、字符串等常用容器,完全是面向对象设计的,实现得非常精致。

2016-02-07 02:52:11 7448 1

原创 C变异测试 mutation testing 工具 Milu

最近在做mutation testing实验时,发现支持传统C语言的工具很少,不像JAVA, 有很多很强大的比如PIT,很早之前出过一个Proteum/IM 2.0, 这个算是老古董了基于LI中间语言的,很多如今的程序是支持不来了下面推荐一个新的基于clang的工具Milu,中文麋鹿,是一个中国人开发的git clone https://github.com/yuejia/Milu

2016-02-07 02:48:41 2619 3

原创 register, volatile 关键字

register:这个关键字请求编译器尽可能的将变量存在CPU 内部寄存器中而不是通过内存寻址访问以提高效率。为啥要这么麻烦啊?速度!就是因为速度。寄存器其实就是一块一块小的存储空间,只不过其存取速度要比内存快得多。进水楼台先得月嘛,它离CPU 很近,CPU 一伸手就拿到数据了,比在那么大的一块内存里去寻找某个地址上的数据是不是快多了? 详细可以参考: http://c.bianche

2016-02-05 16:18:37 360

原创 strcpy 溢出问题

今天编译一个老程序,后来发现了是strcpy溢出了,这个老程序以前是没问题的,但是strcpy 有一些不确定的行为,和memory layout相关,所以有可能现在版本的编译器导致了这个问题。这里详细说一下strcpy溢出问题,简单的说就是strcpy 不考虑目的地址的剩余空间,假设你已经分配了足够的空间, 它会一直赋值到源字符串结尾遇到\0 位置才停止, 所以有可能会触发一些内存

2016-02-05 16:14:49 1217

原创 shell中同时执行多个命令,逻辑与&&和或||

部分内容参考http://151wqooo.blog.51cto.com/2610898/1174066shell中&&和||的使用方法&&运算符: command1  && command2 &&左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行;换句话说,“如果这个命令执行成功&&那么执行这个命

2016-02-03 13:26:08 8350

原创 如何产生真正随机数

在自动化测试中,随机测试是很常见的,一般人都知道srand和rand()配合使用产生伪随机数序列,但是如何选择seed, 其实是个问题,用最简单的time(NULL)是可以,但是如果在一个脚本里面快速执行很多遍时,很有可能时间还没有超过1个时间颗粒度,这样前后执行的测试取的是一样的随机数。一般可以再加上 getpid()这个因素。seed=time(NULL)+getpid(); 

2016-02-02 12:13:33 1453

原创 RAND_MAX+1 会溢出

RAND_MAX是C中stdlib.h中宏定义的一个字符常量:一般情况下会定义为#define RAND_MAX Ox7FFF其值最小为0,最大为32767  但是在GNU LIBRARY 定义为2147483647所以用double 转换然后再加1 防止溢出((double) rand() / ((double) RAND_MAX + 1)不能用加

2016-02-02 08:16:09 742

转载 北美IT公司大致分档

转载了一份来自mitbbs上面的大致分档,想肉身翻墙找工作的可以参考一下:应该是以面试难度划分的。北美IT公司大致分档第一档: Uber, Snapchat, Airbnb,  Pinterest第二档:Facebook, LinkedIn, Google, Twitter, Apple第三档: Square, Yelp, Net

2016-02-01 11:47:51 1255

原创 bind: Address already in use 错误追踪

Linux socket 编程  经常遇到这种错误。很大情况是一些进程绑定了端口,忘记解除绑定了。可以通过netstat 命令找到占用的端口 然后用kill 命令杀掉。netstat -ntupln表示不查询dnst表示tcp协议u表示udp协议p表示查询占用的程序l表示查询正在监听的程序netstat -anp

2015-12-28 05:03:34 472

原创 Syslog Linux

syslog 查看:cat /var/log/syslog什么时候使用:我个人感觉syslog比printf cout 等打印语句靠谱,因为它是立刻写入的。一些打印语句有时候会存入到临时的buffer里面还没来得及写入文件,就被错误结束运行了(从而丢了不少信息)。下面是一个简单的例子,如何使用syslog:#include setlogmask (LOG

2015-12-23 08:56:20 502

原创 libxml2 ubuntu安装

在ubuntu 下安装特别简单sudo apt-get install libxml2sudo apt-get install libxml2-dev使用例子:gcc demo.c -lxml2但是这样还是会报错:找不到一些头文件解决方法: sudo cp -r /usr/include/libxml2/libxml/ /usr/incl

2015-12-23 05:47:36 3387

原创 一个可以限制执行时间的命令timeout

timeout --helpUsage: timeout [OPTION] DURATION COMMAND [ARG]...  or:  timeout [OPTION]运行指定命令,如果在指定时间后仍在运行则杀死该进程。后缀"s"代表秒(默认值),"m"代表分,"h"代表小时,"d"代表天。Example:cmd: tim

2015-12-23 05:38:03 8760

转载 QEMU,KVM,QEMU-KVM,XEN,LIBVIRT的区别

目前虚拟化技术很热门随着Amazon aws, Microsoft azure, open-stack一些infrastructure, 同时, 我常用qemu来帮助测试kernel, drivers, etc. 以下是我看到的一篇很好的文章关于几种比较常见的虚拟化技术总结:   KVM:(Kernel-based Virtual Machine)基于内

2015-12-19 08:06:23 561

原创 开始写博客了!

研究计算机网络,自动化测试相关专业,很多年下来,虽然遇到过和解决了很多技术问题但是没有系统的记录下来,从现在开始把一些有价值的东西记录下来,以供更多的人交流学习!

2015-12-19 07:07:42 173

空空如也

空空如也

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

TA关注的人

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