摘要: 转自:http://www.ibm.com/developerworks/cn/linux/l-cn-nohup/我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败。如何让命令提交后不受本地关闭终端窗口/网络断开连接的干扰呢?下面举了一些例子, 您可以针对不同的场景选择不同的方式来处理这个问题。nohup/setsid/&场景:如果只是临时有一个命令需要长时间运行,什么方法能最简便的保证它在后台稳定运行呢?hangup 名称的来由在 Unix 的早期版本中,每个终端都会通过 modem 阅读全文
posted @ 2012-12-24 10:23 菜鸟的世界 阅读(620) 评论(0) 推荐(0) 编辑
摘要: 首先,看看典型的随机数函数的实现:static unsigned int g_seed = 0;void srand(int seed) {g_seed = seed;}int rand() {g_seed = 214013 * g_seed + 2531011;return g_seed ^ g_seed >> 15}srand()用来初始化产生随机数的种子,如果不用srand()初始化,则会自动采用默认的种子。每一次调用rand(),该函数都会根据当前的种子来产生一个数,并且会相应的修改g_seed。通常,为了使得程序每次运行的时候产生的随机数不同,可以用系统时间来作为种子(单 阅读全文
posted @ 2012-08-06 20:45 菜鸟的世界 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 在C++中,经常需要include一些自己定义的头文件,如果处理不当,很容易出现"multipe definition ....."的错误。闲话少说,先来一个例子:假设定义了如下3个文件:global.h a.cpp b.cpp//global.h:#ifndef _GLOBAL_H_#define _GLOBAL_H_const int a=1;int b;#endif//a.cpp#include <iostream>#include <stdlib.h>#include "global.h"using namespace s 阅读全文
posted @ 2012-07-13 16:12 菜鸟的世界 阅读(16798) 评论(0) 推荐(1) 编辑
摘要: 要创建一个m*n的二维数组arr,方法如下:C:int** arr=(int **)malloc(sizeof(int *)*m);for (i=0; i<m; i++) arr[i]=(int *)malloc(sizeof(int) * n);C++:int ** arr=new int* [m];for (i=0; i<m; i++) arr[i]=new int[n];释放二维数组:C:for (i=0; i<m; i++) free(arr[i]);free(arr);C++:for (i=0; i<m; i++) delete[] arr[i];delete 阅读全文
posted @ 2012-06-30 14:43 菜鸟的世界 阅读(6080) 评论(0) 推荐(0) 编辑
摘要: 在C++的STL中,有专门用来排序的函数sort()。使用时,要include <algorithm> 头文件。下面是一个小例子:假设有如下数组int arr[]={2,1,4,3}用如下语句可对arr[]进行排序: sort(arr, arr+4); 排序结果默认为升序排列要想得到降序排序,可用reverse,用法为: reverse(arr, arr+4);注意:1.sort() 和reverse()的结果都是直接体现在原数组上的2.可以通过控制参数来达到部分排序的目的Reference:http://jishus.org/?p=721 阅读全文
posted @ 2012-06-24 20:54 菜鸟的世界 阅读(559) 评论(0) 推荐(0) 编辑
摘要: N50 is a widely used metric for mearing the quality of contigs outputted by the assembly algorithms. Some of the definitions or descriptions on N50 are listed as follows:"In addition to total size, the N50 size is a very useful statistic for comparing genome assemblies: it represents the sizeNs 阅读全文
posted @ 2012-06-22 16:31 菜鸟的世界 阅读(494) 评论(0) 推荐(0) 编辑
摘要: 对于如下情况:有多个源文件(.c 或.cpp),都引用了同一个头文件,为了防止出现重复定义的情况,我们经常需要使用条件编译。参考:http://baike.baidu.com/view/1617265.htmTips:在c语言中,对同一个变量或者函数进行多次声明是不会报错的。所以如果h文件里只是进行了声明工作,即使不使用# ifndef宏定义,多个c文件包含同一个h文件也不会报错。但是在c++语言中,#ifndef的作用域只是在单个文件中。所以如果h文件里定义了全局变量,即使采用#ifndef宏定义,一个c文件包含同一个h文件多次还是会出现全局变量重定义的错误。使用#ifndef可以避免下面这 阅读全文
posted @ 2012-06-16 20:53 菜鸟的世界 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 在不同的操作系统及编译环境中,指针类型占用的字节数是不同的。一般而言,编译生成16位的代码时,指针占2个字节编译生成32位的代码时,指针占4个字节编译生成64位的代码时,指针占8个字节对于某一个具体的环境,可以用下面的语句精确的知道指针类型占用的字节数:printf("%d\n", sizeof(int *)); 阅读全文
posted @ 2012-06-13 17:16 菜鸟的世界 阅读(3997) 评论(0) 推荐(0) 编辑
摘要: 在C中,string可以用char 类型的数组来表示,要注意的是C会自动的在string的末尾添加上结束符'\0'。所以,如果我们声明了一个char类型数组 char a[6], 我们最多能往里放5个有效字符。string.h 函数库中提供了一些函数可以方便我们对string的出来。在使用这些函数的时候,要特别的小心。举个例子来说,strcatvoid test(){ char a[20]="12345"; char b[10]="abcdef" strcat(a, b[0]);}在这个例子中,我们想把'a' 追加到a的后 阅读全文
posted @ 2012-06-12 20:24 菜鸟的世界 阅读(1161) 评论(0) 推荐(0) 编辑
摘要: 方式如下:system(“命令”)要加入头文件#include<stdlib.h>e.g. system("ls"); 阅读全文
posted @ 2012-06-12 19:49 菜鸟的世界 阅读(1050) 评论(0) 推荐(0) 编辑