Linux目录操作
mkdir()
#include <sys/stat.h>
#include <sys/types.h>
int mkdir(const char *pathname, mode_t mode);
opendir()、fdopendir()
//打开一个文件夹流,返回一个绑定了这个流的指针,成功返回一个指针,失败返回NULL设errno
#include <sys/types.h>
#include <dirent.h>
DIR *opendir(const char *name);
DIR *fdopendir(int fd);
readdir()
//返回一个代表了目录流里下一个目录入口的结构体指针
a) #include <dirent.h>
struct dirent *readdir(DIR *dirp);
struct dirent {
ino_t d_ino; /* inode number */
off_t d_off; /* not an offset; see NOTES */
unsigned short d_reclen; /* length of this record */
unsigned char d_type; /* type of file; not supported by all filesystem types */
char d_name[256]; /* filename */
};
telldir()
//返回当前的目录流的位置,失败返回-1设errno
#include <dirent.h>
long telldir(DIR *dirp);
seekdir()
设置下次读取目录的位置
#include <dirent.h>
void seekdir(DIR *dirp, long loc);
rewinddir()
//将目录流的位置指针重设到目录的开头
#include <sys/types.h>
#include <dirent.h>
void rewinddir(DIR *dirp);
dirfd()
//返回绑定了目录流的文件描述符
#include <sys/types.h>
#include <dirent.h>
int dirfd(DIR *dirp);
closedir()
关闭dirp绑定的目录流,成功返回0.失败返回-1设errno
a) #include <sys/types.h>
#include <dirent.h>
int closedir(DIR *dirp);
rmdir()
//删除指定路径的目录,这个目录必须是空的,成功返回0.失败返回-1
#include <unistd.h>
int rmdir(const char *pathname);
/*--------------------------------------------------------------------------------------------
hw.c编程实现打印指定目录中的内容, 要求子目录中的内容也要打印出来
--------------------------------------------------------------------------------------------*/
#include<unistd.h>
#include<sys/types.h>
#include<dirent.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void print(char *path){
DIR *dir=opendir(path);
if(NULL==dir)
perror("opendir"),exit(-1);
printf("打开%s目录成功\n",path);
struct dirent* ent=NULL;
while(ent=readdir(dir)){
printf("type:%d,name:%s\n",ent->d_type,ent->d_name);
if(4==ent->d_type&&*ent->d_name!='.'){
char buf[200];
// char buf[]="./"; //ATTENTION: 当前工作目录里找"./Code"是不行的,得在"../../160510/Code"里面找
// strcat(buf,path); //
strcpy(buf,path);
strcat(buf,"/");
strcat(buf,ent->d_name);
print(buf);
}
}
int res=closedir(dir);
if(-1==res)
perror("closedir"),exit(-1);
}
int main(){
print("../../160510");
return 0;
}
Linux目录操作的更多相关文章
- 3、Linux目录操作
1.目录操作概述 2.ls显示目录内容 命令名称:ls 命令英文原意:list 命令所在路径:/bin/ls 执行权限:所有用户 功能描述:显示目录文件 ls -a 显示目录下的所有文件(包括 ...
- Linux 目录操作和4中文件拷贝效率测试
/*1.用户输入任意目录名称,显示该目录下的文件列表信息,包括文件类型,文件权限,文件大小,文件名称2.拷贝用户输入的文件到当前目录下3.第二点功能,使用4种方式完成,并比较说明效率*/ /* str ...
- liunx学习(一):linux下目录操作大全
Linux C函数之文件及目录函数(全):http://blog.sina.com.cn/s/blog_695e489c01013ldd.html linux目录操作发:http://www.cnbl ...
- linux目录及文件命令学习
学习Linux 目录操作 1.pwd 可以看当前目录路径 2.cd change directory 改变目录,切换目录 cd / 进入跟目录 cd ..返回上级目录 cd 进入用户主目录 cd .. ...
- Matlab命令——目录操作(windows&Linux)
Matlab命令——目录操作(windows&Linux) 1. filesep用于返回当前平台的目录分隔符,Windows是反斜杠(\),Linux是斜杠(/).有时此命令结合ispc命令使 ...
- Linux目录结构以及文件操作
Linux目录结构 UNIX 是以目录为主的,Linux 也继承了这一优良特性. Linux 是以树形目录结构的形式来构建整个系统的,可以理解为树形目录是一个用户可操作系统的骨架.虽然本质上无论是目录 ...
- 每天一个linux命令(目录文件操作):【转载】Linux 目录结构
对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统至关重要,下面 ...
- Vmware复制完好的linux目录后网卡操作
目录 Vmware复制完好的linux目录后网卡操作 修改/etc/udev/rules.d/70-persistent-net.rules 修改网卡配置文件 重启查看 Vmware复制完好的linu ...
- Linux 文件/目录操作详解
目录 Linux 文件/目录操作详解 初识Linux 一.文件/目录显示命令 ls 二.目录创建命令 mkdir 三.目录转移命令 cd 四.当前目录显示命令 pwd 五.文件处理命令 rmdir 六 ...
随机推荐
- No.016:3Sum Closest
问题: Given an array S of n integers, find three integers in S such that the sum is closest to a given ...
- 更新整理本人所有博文中提供的代码与工具(Java,2013.10)
为了更方便地管理博文中涉及的各种代码与工具资源,现在把这些资源迁移到 Google Code 中,有兴趣者可前往下载. Java 1.<高效 Java Web 应用开发框架 JessMA v3. ...
- Node.JS文件系统解析
1.Node.js 文件系统 var fs = require("fs") 2.异步和同步 读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFile ...
- Nuget很慢,我们该怎么办
在VS中给项目添加程序已经采用NuGet 十分方便 不过很多时候速度很慢,一直显示“正在检索信息” 其实直接使用程序包管理控制台,速度就会好很多 如果命令不太会写,安装包名不是确认,可以先登录 htt ...
- mac下彻底卸载mysql方法
sudo rm /usr/local/mysqlsudo rm -rf /usr/local/mysql*sudo rm -rf /Library/StartupItems/MySQLCOMsudo ...
- Context.js 右键菜单
ContextJS is a lightweight solution for contextual menus. Currently, there are two versions. The fir ...
- 来自 Codrops 的7种创新的拖放交互界面
Codrops 分享了一些界面拖放的交互设计想法.基本的思路是在拖动一个项目的时候,为特定的操作呈现出可投掷的区域.这节省了大量的界面空间 ,并给出了一个有趣的动态的互动.有很多应用场景,例如分类和组 ...
- vue安装
条件:已安装 node&npm 1.安装 cnpm : $ npm install -g cnpm --registry=https://regis ...
- JavaScript学习笔记-基础语法、类型、变量
基础语法.类型.变量 非数字值的判断方法:(因为Infinity和NaN他们不等于任何值,包括自身) 1.用x != x ,当x为NaN时才返回true; 2.用isNaN(x) ,当x为NaN或 ...
- ARP投毒及其防御方法
1.攻击原理 ARP欺骗就是中间人欺骗pc机,告诉pc机它是服务器.再欺骗服务器,告诉服务器它就是pc机.以致获取服务器与pc机的会话信息. 中间人欺骗服务器时,会给服务器发一个报文,发之前把报文中的 ...