apue编程之参考du代码利用递归写的一个简单的du命令的源代码
#include <stdio.h>
#include <stdlib.h>
#include <glob.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#define PATHSIZE 1024
static int path_noloop(const char *path)
{
char *pos;
pos = strrchr(path,'/');//定位最右边的'/'的位置
, || (strcmp(pos+,))
;
;
}
static int64_t mydu(const char *path)
{
int i;
glob_t globres;
int64_t sum;
static struct stat statres;
static char nextpath[PATHSIZE];
)
{
perror("lstat()");
;//exit(1);
}
if(!S_ISDIR(statres.st_mode))
return statres.st_blocks;
strncpy(nextpath, path,PATHSIZE);
strncat(nextpath, "/*" , PATHSIZE);
glob(nextpath,GLOB_NOSORT, NULL, &globres);
strncpy(nextpath, path,PATHSIZE);
strncat(nextpath, "/.*" , PATHSIZE);
glob(nextpath,GLOB_NOSORT|GLOB_APPEND, NULL, &globres);
sum = statres.st_blocks;
;i < globres.gl_pathc ; i++)
{
if(path_noloop(globres.gl_pathv[i]))
sum += mydu(globres.gl_pathv[i]);
}
return sum;
}
int main(int argc,char **argv)
{
)
{
fprintf(stderr,"Usage...\n");
exit();
}
printf(]));
;
}
apue编程之参考du代码利用递归写的一个简单的du命令的源代码的更多相关文章
- apue编程之参考df代码写的一个简单的df命令的源代码
代码: #include <stdio.h> #include <mntent.h> #include <string.h> #include <sys/vf ...
- 利用HttpClient写的一个简单页面获取
之前就听说过利用网络爬虫来获取页面,感觉还挺有意思的,要是能进行一下偏好搜索岂不是可以满足一下窥探欲. 后来从一本书上看到用HttpClient来爬取页面,虽然也有源码,但是也没说用的HttpClie ...
- 为了支持AOP的编程模式,我为.NET Core写了一个轻量级的Interception框架[开源]
ASP.NET Core具有一个以ServiceCollection和ServiceProvider为核心的依赖注入框架,虽然这只是一个很轻量级的框架,但是在大部分情况下能够满足我们的需要.不过我觉得 ...
- 代码改变世界 | 如何封装一个简单的 Koa
下面给大家带来:封装一个简单的 Koa Koa 是基于 Node.js 平台的下一代 web 开发框架 Koa 是一个新的 web 框架,可以快速而愉快地编写服务端应用程序,本文将跟大家一起学习:封装 ...
- [2017-08-25]100行CSharp代码利用dynamic写个DSL(特定领域语言)
最近看<CLR via C#(第4版)> 读到第五章末尾dynamic基元类型时,看了下作者的一个利用dynamic动态调用string类型的Contains方法(静态方法)的实现,突然发 ...
- Android的NDK开发(2)————利用Android NDK编写一个简单的HelloWorld
1.Android NDK简介 NDK全称为native development kit本地语言(C&C++)开发包.而对应的是经常接触的Android-SDK,(software devel ...
- JNI 在Android Studio利用NDK编译运行一个简单的c库
NDK开发,其实是为了项目需要调用底层的一些C/C++的一些东西:另外就是为了效率更加高些.如果你在Eclipse+ADT下开发过NDK就能体会到要么是配置NDK还要下载Cygwin,配置Cygwin ...
- js 利用throw 写的一个小程序
在下边的小程序中比较特殊的是使用isNaN()函数判断一个参数是不是数字, <!DOCTYPE html> <!DOCTYPE html> <html> <h ...
- 利用jquery写的一个TAB页切换效果
函数如下 /** *切换效果 */ function switab(tab,con,tab_c_css,tab_n_css,no) { $(tab).each(function(i){ if(i == ...
随机推荐
- jenkins错误413 Request Entity Too Large<
jenkins-nginx--sonar1/sonar2
- Guava API - FluentIterable Predicate Function Odering Range Splitter
这写API可解决的问题 1. 集合元素的过滤 - FluentIterable Predicate Range Function 1) 先说Predicate<T>,这个相当与一个过滤原则 ...
- 用指令来构建IIS7
工作上要部署iis7+net4.0环境,发现30多台机子都没有用装有IIS7镜像来安装,都必须自己手动. 作为程序猿,真要一台台装的话,就真对不起自己的职业.于是想到用bat来执行任务,找到了安装II ...
- PowerDesigner教程系列(三)概念数据模型
目标: 本文主要介绍属性的标准检查约束.如何定义属性的附加检查. 一.定义属性的标准检查约束 标准检查约束是一组确保属性有效的表达式.在实体属性的特性窗口,打开如图所示的检查选项卡. 在这个选项卡可以 ...
- 关闭使用ShellExecute打开的进程!!!!!
前言: 最近做一个项目使用到ShellExecute来打开一个带参数的外部exe文件,关闭时遇到不少问题,最终解决,总结如下. 对于关闭ShellExecute打开的进程窗口,网上比较多的是用Find ...
- 使用CSS3建立不可选的的文字
下面的例子展示了在HTML5中你如何使用CSS建立不可选的文字. <!DOCTYPE HTML> <html> <head> <title>Creati ...
- 在css加载完毕后执行后续代码
最近在写项目的framework,写个JQueryMessageBox的类,以使用jquery ui中的dialog()来显示消息框,为了使方法方便调用,便加入了自动判断页面是否加入了ui.js和ui ...
- SQL Server之RAID简介
一: RAID简介 RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)是一项数据保护策略. 二: RAID的几种常用级别 1. RAID 0: 通过并 ...
- OpenCV学习笔记(四十)——再谈OpenCV数据结构Mat详解
原文:http://blog.csdn.net/yang_xian521/article/details/7107786 我记得开始接触OpenCV就是因为一个算法里面需要2维动态数组,那时候看cor ...
- T-SQL 之 语法元素
一.标识符 在T-SQL语言中,对SQLServer数据库及其数据对象(比如表.索引.视图.存储过程.触发器等)需要以名称来进行命名并加以区分,这些名称就称为标识符. 通常情况下,SQLServer数 ...