linux 怎么禁止遍历目录,linux下遍历目录功能实现
/*
编译:
dir:dir.c
gcc -o $@ $<
*/
#include
#include
#include
#include
#include
int do_search_dir(char *path);
int do_check_dir(char *fullpath, char* truefullpath);
void usage(char *apps);
int count = 0;
int
main(int argc,char **argv)
{
char fullpath[1024]={0};
if(argc != 2)
{
usage(argv[0]);
return -1;
}
if( -1 ==do_check_dir(argv[1], fullpath) )
return -1;
do_search_dir(fullpath);
printf("\nThe total number of files is %d in the directory [%s].\n\n", count , fullpath);
return 0;
}
//return -1 search fail
//return 0 search ok
int
do_search_dir(char *path)
{
DIR *dir;
struct dirent *s_dir;
struct stat file_stat;
char currfile[1024]={0};
int len = strlen(path);
if(path[len-1] != '/')
{
path[len] = '/';
path[len+1] = 0;
}
printf("%s\n",path);
if( (dir=opendir(path)) == NULL)
{
printf("opendir(path) error.\n");
return -1;
}
while((s_dir=readdir(dir))!=NULL)
{
if((strcmp(s_dir->d_name,".")==0)||(strcmp(s_dir->d_name,"..")==0))
continue;
sprintf(currfile,"%s%s",path,s_dir->d_name);
stat(currfile,&file_stat);
if(S_ISDIR(file_stat.st_mode))
do_search_dir(currfile);
else
printf("%-32s\tOK\n",currfile);
count++;
//
//添加针对此文件的操作
//
}
closedir(dir);
return 0;
}
void
usage(char * apps)
{
printf("Directory to search for files.\n\n");
printf("Usage: %s dirpath\n\n",apps);
}
//return -1 directory error
//args:
//input -->fullpath
//output -->truefullpath
int
do_check_dir(char *fullpath, char* truefullpath)
{
DIR *dir;
int pathlen, i ,k;
if( (dir=opendir(fullpath)) == NULL)
{
printf("opendir fullpath error.\nMaybe dir error.\n");
return -1;
}
closedir(dir);
pathlen = strlen(fullpath);
if( pathlen-1 != 0) // 路径长度不为1 的目录
{
if( fullpath[pathlen-1] == '/' ) // 最后字节是'/'
{
for(i=pathlen-1; i>=0 ; i--)
{
if( fullpath[i-1] != '/' && fullpath[i] == '/')
break;
}
fullpath[i+1] = 0;
}
else // 最后字节不是'/'
{
fullpath[pathlen] = '/';
fullpath[pathlen+1] = 0;
}
}
else // 路径长度为1 的目录
{
if(fullpath[pathlen-1] != '/')
{
fullpath[pathlen] = '/';
fullpath[pathlen+1] = 0;
}
else
fullpath[pathlen] = 0;
}
strcpy(truefullpath,fullpath);
return 0;
}
linux 怎么禁止遍历目录,linux下遍历目录功能实现相关推荐
- windows linux复制文件夹命令,ubuntu下复制目录和文件的指令以及和windows下的copy方式...
Ubuntu中复制文件或目录的命令 cp(copy)命令 该命令的功能是将给出的文件或目录拷贝到另一文件或目录中. 语法: cp [选项] 源文件或目录 目标文件或目录 说明:该命令把指定的源文件复制 ...
- jQuery过滤、遍历同级元素、向上遍历、向下遍历
话不多说,直接贴代码(我只是希望能在温习原生js的同时,发现一些有趣的东西!) .html: <!DOCTYPE html> <html> <head> <m ...
- linux vnc 禁止复制,Linux_Linux系统下VNC SERVER的相关配置,安装: 复制代码代码如下: - phpStudy...
Linux系统下VNC SERVER的相关配置 安装: 复制代码代码如下: yum install tigervnc-server 配置: (1) 复制配置文件: 复制代码代码如下: ~]# cp / ...
- linux怎样禁止他人远程,linux禁止用户远程登录的方法
linux禁止用户远程登录的方法: 1.在新添加一个新用户的时候就指定这个用户不能远程登录 useradd -s /sbin/nologin zgsj //这里就是创建了一个不能远程登 ...
- linux如何禁止pci设备,Linux 内核PCI去除一个设备
一个 PCI 可用多个不同的方法被从系统中去除. 所有的 card-bus 设备在一个不同的物 理因素上是真正的 PCI 设备, 并且内核 PCI 核心不区分它们. 允许在机器运行时加减 PCI 设备 ...
- linux c 禁止对外通信,Linux c 屏蔽信号、切换信号
信号导致的问题 不是任何信号我们都需要的,如果遇到我们不想处理的信号,我们怎么避免这个信号? 1. 信号屏蔽 intsigprocmask(int how,//操作方式 SIG_BLOCK屏 ...
- linux系统禁止邮箱服务,Linux禁止smtp发送邮件,禁止25端口,防止垃圾邮件
有时候,一些网站不小心被黑,导致垃圾邮件泛滥而遭到投诉,这是我们不想遇到的.怎么样在Linux禁止smtp发送邮件,禁止25端口,防止垃圾邮件?我们可以用iptables来实现屏蔽25端口,如果服务器 ...
- linux c 禁止对外通信,Linux C套接字:在recv调用时被阻止
在我的应用程序中,我为简单的http服务器创建了一个线程,然后从我的应用程序中尝试连接到http服务器,但是在recv调用中控件被阻止/挂起. 但是,如果尝试使用linux GET命令连接到应用程序的 ...
- python目录遍历_python文件操作之目录遍历实例分析
本文实例讲述了python文件操作之目录遍历的方法.分享给大家供大家参考.具体分析如下: Python的os模块,包含了普遍的操作系统功能,这里主要学习与路径相关的函数: os.listdir(dir ...
- linux 设置禁止ping,linux设置禁止ping
linux禁止ping 为了服务器的安全, 防止网络攻击(DOS 攻击消耗网络宽带,CPU资源), 需要服务器设置 禁止ping 通常有两种方式 第一种是通过防火墙 iptables 设置 第二种是内 ...
最新文章
- 63、使用Timer类来实现定时任务
- cocos2d-x游戏实例(8)-A星算法(4)
- Java Optional 的 orElse() 和 orElseGet() 的区别
- Java-分析类初始化
- python参数检验框架_基于python的人员识别检测框架研究
- python中对字符串进行编码_Python 中的字符串编码
- Web流程图绘制使用raphael
- Poj 1338 Ugly Numbers(数学推导)
- 设计灵感|如何让你的海报更具现代感?
- python爬虫入门四:BeautifulSoup库(转)
- Linux/windows com串口 java 接收数据 并解析 web程序
- MATLAB信号处理仿真入门实验
- 【解决方案】AI视频结构化智能安防平台EasyCVR保护小区居民安全智能监控方案
- 华为OD机试2023年最新题库(JAVA、Python、C++)
- SpringCloud 微服务开放平台接口
- 服务器托管如何选择合适的idc服务器托管商
- 优质软件、网站等推荐(持续更新)
- 货代英语--------澳大利亚包装声明
- c语言强制转换是四舍五入,c语言强制转换四舍五入.docx
- TM2013 Preview1 优化笔记
热门文章
- struts2的漏洞
- Tiray.SMSTiray.SMSTiray.SMSTiray.SMSTiray.SMSTiray.SMS
- 聊聊flink Table的OrderBy及Limit
- WIN10下ADB工具包安装的教程和总结 --201809
- **加密解密基础、PKI及SSL、创建私有CA**
- 如何让CloudStack使用KVM创建Windows实例成功识别并挂载数据盘
- 智能家居物联网化将成为AWE大会最大看点
- 坚持学习WF(8):本地服务之调用外部方法
- cmake使用总结(转)---工程主目录CMakeList文件编写
- sql server 2005 (select查询语句用法)