- 博客(34)
- 资源 (14)
- 收藏
- 关注
原创 Linux 命令行编程 getopt_long
int getopt_long(int argc, char * const argv[], const char *optstring, const struct option *longopts, int *longindex);extern char *optarg;//选项参数保存 extern int optin
2014-10-28 09:58:46 508
转载 makefile 的编写 详细
最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。 于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。 后记,看完发现这篇文章和《Linux环境下的C编程指南》的makefile一章所讲述的惊人的相似,只是这篇文章从一个实例切入,在有些地方比
2014-10-27 11:56:30 783
原创 SourceForge上发布dedup util 安装使用 ubuntu centos 版本 1.4.2
[dedup util]dedup util是一款开源的轻量级文件打包工具,它基于块级的重复数据删除技术,可以有效缩减数据容量,节省用户存储空间。目前已经在Sourceforge上创建项目,并且源码正在不断更新中。该工具生成的数据包内部数据部局(layout)如下:--------------------------------------------------| head
2014-10-25 14:57:01 740
转载 linux采用编译内核的方法增加系统功能调用
最近做了我们院的操作系统课程设计,本来是想把我的报告拿出来和大家分享的,可寝室的朋友说我这么做容易使后来的童鞋不经过自己的思考就全盘copy,所以我决定还是分类讲讲我做的过程吧!首先完成的是一个linux系统功能调用的增加。我们都知道系统功能调用是Unix/Linux操作系统向用户程序提供支持的接口,通过这些接口应用程序向操作系统请求服务,控制转向操作系统,而操作系统在完成服务后,将控制和
2014-10-24 16:54:09 2511
转载 Linux ls 命令实现(简化版)
在学习linux系统编程的时候,实现了ls命令的简化版本。实现的功能如下:1. 每种文件类型有自己的颜色 (- 普通文件, d 目录文件, l 链接文件, c 字符设备文件, b 快设备文件, p 管道文件, s socket文件。共7种)2. 支持的参数有 -hali (a: 显示隐藏文件, i: 显示inode节点号,l: 以列表形式显示文件的详细信息,h: 人类可读的
2014-10-24 16:40:05 687
转载 MD5 的使用
#include#include#includeint main( int argc, char **argv ){ char *data="123"; char md[16]={0}; int i; char tmp[3]={'\0'},buf[33]={'\0'}; MD5((unsigned char*)data,strlen(data),
2014-10-21 20:54:24 356
原创 重复数据删除技术概述
重复数据删除技术概述一、 重复数据删除的分类1. 源端重复数据删除和目标端重复数据删除源端消重在数据源进行,传输的是已经消重后的数据,能够节省网络带宽,但会占用大量源端系统资源。目标端消重发生在目标端,数据在传输到目标端再进行消重,它不会占用源端系统资源,但占用大量网络带宽。 2. 在线重复数据删除和离线重复数据删除采用在线消重模式,数据写入
2014-10-19 21:59:04 4783
原创 Linux 文件系统 重要总结
http://www.opsers.org/base/one-day-the-little-learning-linux-inode-detailed.html最后我们来做个总结:1、一个Inode对应一个文件,而一个文件根据其大小,会占用多块blocks。2、更为准确的来说,一个文件只对应一个Inode。因为硬链接其实不是创建新文件,只是在Directory中写入了新的对应关系而已。
2014-10-19 21:29:21 786
原创 Linux 文件系统 (未整理 有时间整理)
1、一个Inode对应一个文件,而一个文件根据其大小,会占用多块blocks。2、更为准确的来说,一个文件只对应一个Inode。因为硬链接其实不是创建新文件,只是在Directory中写入了新的对应关系而已。3、当我们删除文件的时候,只是把Inode标记为可用,文件在block中的内容是没有被清除的,只有在有新的文件需要占用block的时候,才会被覆盖。//@@Unix/Lin
2014-10-19 21:27:06 1264
转载 rsync 的核心算法
rsync是unix/linux下同步文件的一个高效算法,它能同步更新两处计算机的文件与目录,并适当利用查找文件中的不同块以减少数据传输。rsync中一项与其他大部分类似程序或协定中所未见的重要特性是镜像是只对有变更的部分进行传送。rsync可拷贝/显示目录属性,以及拷贝文件,并可选择性的压缩以及递归拷贝。rsync利用由Andrew Tridgell发明的算法。这里不介绍其使用方法,只介绍其
2014-10-19 12:10:23 459
原创 Linux C 函数总结
Linux C 的内存分配3个存储空间动态分配和一个内存释放的函数malloc 内存分配指定字节存储区,初始值不为0calloc 为指定个数的具有指定长度的对象分配存储空间,每一位初始化为0reallco 更改以前的分配区长度(可增,可减),当增加时,将以前的分配区内容迁移到一个足够大的区域,在尾部增加,新增加的初始值不确定.free 释放指向的存储空间,空间放入系统可用存储区
2014-10-19 09:49:43 525
原创 Linux 进程
Linux进程进程的四个要素1.一段代码供该进程运行2.专用的系统堆栈空间3.一个由 task_struct 结构实现的进程控制块4.独立的存储空间进程的关系和分类进程号为1的进程是初始化进程(init)进程间关系:p_opptr(祖先)p_pptr(父进程)p_cptr(子进程)p_ysptr(弟进程)p_osptr(兄进程)进
2014-10-18 22:56:11 442
原创 Linux 流操作函数
Linux 流处理函数流操作函数的对象不是文件描述符而是流缓冲区//流的打开与关闭//打开#include FILE *fopen(const char *path, const char *mode);//打开指定的文件FILE *fdopen(int fd, const char *mode);//打开文件描述符指定的流FILE *freopen(c
2014-10-18 14:06:53 846
原创 Linux 文件操作函数
//@@获取当前路径的完整路径#include char *getcwd(char *buf, size_t size);char *getwd(char *buf);char *get_current_dir_name(void);//打开文件 int open(const char *pathname, int flags); int open(const char *path
2014-10-18 08:42:12 522
原创 Linux 目录操作 fdopendir closedir readdir
//@@只有操作系统内核才有权限对目录进行写操作#include #include //打开目录DIR *opendir(const char *name);DIR *fdopendir(int fd);RETURN VALUEThe opendir() and fdopendir() functions return a pointer to the
2014-10-18 00:03:20 1556
转载 Linux 头文件 C语言
linux常用头文件如下:常用的头文件#include //文件控制#include //符号常量#include //内存管理声明#include //文件状态#include //进程时间#include //基本系统数据类型#include //STL 通用算法#include //定义
2014-10-18 00:01:21 993
转载 安装中文的man包 centos redhat
如何安装中文的man包中文man对英文不是很好的朋友来说,可以起到一点帮助作用。不过要学好linux,就不能太依赖这个东东,毕竟学好英语才是王道。环境:centos 5.3,内核:2.6.18-194.el5 (注,我的电脑也是这个,呵呵)官方网站:http://cmpp.linuxforum.net这个是源码的:http://manpages-zh.googlec
2014-10-17 20:19:18 657
转载 Gvim 快速注释
批量注释ctrl+v 进入列编辑模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I(shift+i),再插入注释符,比如"//",再按Esc,就会全部注释了批量去掉注释ctrl+v,进入列编辑模式,横向选中列的个数(如"//"注释符号,需要选中两列),然后按d, 就会删除注释符号think in coding
2014-10-16 22:14:03 3528
转载 linux下 C语言perror函数的作用
头文件 #include #include//注意 不可以掉了这个头文件,perror是包含在这个文件里的//编辑本段perror表头文件完善版定义函数 void perror(const char *s); perror ("open_port");函数说明 perror ( )用 来 将 上 一 个 函 数 发 生 错 误 的 原 因
2014-10-15 20:58:45 604
转载 VIM代码 格式化与注释 自动对齐
最近在逛CSDN论坛时经常会苦恼一个问题——有些网友贴上去的代码没有用规范的格式贴上去,我贴到VIM里常常会需要手动调整格式,非常麻烦。每当这个时候就异常怀念以前用VC6.0时的ALT+F8……想下VIM作为一个程序员们最贴心的编辑器,显然不会对此坐视不理。经过一番的Search,果然就找到了一些最常用的简单技巧,笔记一下以备后来不时之需。 VIM格式化代码: 格式化全文指令 gg=G
2014-10-15 20:50:03 9141
原创 Linux mmap的使用
1.mmap#include void *mmap(void *start, size_t length, int prot, int flags,int fd, off_t offset);int munmap(void *start, size_t length);返回说明:成功执行时,mmap()返回被映射区的指针,munmap()返回0。失败时,mmap()返回MAP
2014-10-15 18:09:15 549
原创 Linux C 的内存分配
3个存储空间动态分配和一个内存释放的函数malloc 内存分配指定字节存储区,初始值不为0calloc 为指定个数的具有指定长度的对象分配存储空间,每一位初始化为0reallco 更改以前的分配区长度(可增,可减),当增加时,将以前的分配区内容迁移到一个足够大的区域,在尾部增加,新增加的初始值不确定.free 释放指向的存储空间,空间放入系统可用存储区池分配成功返回指向分配区的指针,否
2014-10-13 10:59:38 479
原创 Linux基本函数
//得到环境变量char getenv(const char* name)setenv 改变或增加环境变量unsetenv 删除环境变量putchar(int c) //单字符的输出floor(double x) //不大于double modf(double x,double *ptr) //将浮点数分为 整数部分和小数部分字符串转换函数#includeint atoi(
2014-10-12 23:25:43 393
原创 Shell 符号含义 单引号 双引号 反引号
Shell 中的符号''单引号:括起来的字符作为普通字符使用,特殊字符用单引号扩起来,失去原来的意义.""双引号:单引号忽略所有的特殊字符,双引号不会忽略3种字符: $ \ ``反引号:位于键盘的左上角, 反引号括起来的字串解释为命令行,在执行时,shell 首先执行该命令,并以它 的标准输出结果取代整个反引号部分.
2014-10-12 21:41:44 836
转载 Unix/Linux编程之size_t、ssize_t
首先,我非常肯定以及确定的告诉你ssize_t是有符号整型,在32位机器上等同与int,在64位机器上等同与long int,有没有注意到,它和long数据类型有啥区别?其实就是一样的。size_t 就是无符号型的ssize_t,也就是unsigned long/ unsigned int (在32位下),不同的编译器或系统可能会有区别,主要是因为在32位机器上int和long是一样的。在64位没
2014-10-12 21:34:23 439
转载 linux查看系统属性
系统# uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo # 查看CPU信息# hostname # 查看计算机名# lspci -tv # 列出所有PCI设备# ls
2014-10-12 16:46:56 928
转载 Linux系统调用列表
转自:http://www.ibm.com/developerworks/cn/linux/kernel/syscall/part1/appendix.html
2014-10-12 13:48:08 638
转载 Linux 出错处理
linux中,在支持多线程的环境中,通常每个线程都有属于自己的errno变量,是用来表示特定错误的常量。以下是中定义的所有出错errno常量#define EPERM 1 /* Operation not permitted */#define ENOENT 2 /* No such file or directory */#d
2014-10-12 13:05:06 825
转载 main 函数的参数
//例子程序#includeusing namespace std;int main(int argc,char* argv[]){ cout<<"argcn:"<<argc<<endl; for(int i=0;i<argc;i++) { cout<<"argv["<<i<<"]="<<argv[i]<<'\t';
2014-10-12 11:26:12 514
ceph 原理 内容 总结
2016-05-23
pack2alpha1 背包问题9讲
2016-03-15
数学之美 吴军 pdf
2014-11-11
rsync源代码
2014-10-25
机器学习实战.pdf
2014-10-22
SecureCRTSecureFX 中文版
2014-10-18
西工大汇编实验 软件延时器
2013-12-01
西工大 汇编实验 实验四 排序程序
2013-12-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人