就是遍历一个目录下面的所有文件,显示信息

Linux下面有点绕

要通过 opendir打开目录,返回一个DIR结构

用readdir来读DIR结构,返回目录下面的第一项,是个dirent结构体,再次调用readdir回读到第二项,以此类推

dirent结构体里面有该文件的文件名,通过stat可以获得该文件的详细信息。

注意stat结构要malloc一下,不然后segment fail??好像是这个单词。可能是没有分配的话指针会乱指。

读写执行权限在mode_t里面,没有直接输出的函数,要自己写一个,判断有没有该权限,用与运算,不是判等。

其它信息都在stat里面,这里只输出了st_mode。

#include<dirent.h>
#include<stdio.h>
#include<sys/stat.h>
#include <fcntl.h> void show(mode_t mode){ if(mode&S_IRUSR)
printf("r");
else
printf("-"); if(mode&S_IWUSR)
printf("w");
else
printf("-"); if(mode&S_IXUSR)
printf("x");
else
printf("-"); /*********Group********/ if(mode&S_IRGRP)
printf("r");
else
printf("-"); if(mode&S_IWGRP)
printf("w");
else
printf("-"); if(mode&S_IXGRP)
printf("x");
else
printf("-"); /**********Else***************/ if(mode&S_IROTH)
printf("r");
else
printf("-"); if(mode&S_IWOTH)
printf("w");
else
printf("-"); if(mode&S_IXOTH)
printf("x");
else
printf("-"); printf("\n"); } int main(int argc,char * argv[]){ DIR *dp;
struct dirent* dir;
struct stat * buf = (struct stat *)malloc(sizeof(struct stat));
int fd; dp = opendir(argv[]); while((dir = readdir(dp))!=NULL){ printf("%s ",dir->d_name);
//fd = open(dir->d_name,O_RDWR);
//fstat(fd,buf);
stat(dir->d_name,buf);
show(buf->st_mode); } printf("Done!!!!\n"); }

实现ls -l的更多相关文章

  1. linux ls -l命令结果含义解析

    ls -l 中显示的内容如下: -rw-r--r--.  1 root root  192 Jan 30 09:55 text.txt - 10个字符确定不同用户能对文件干什么 - 第一个字符代表文件 ...

  2. 标准IO的简单应用,动静态库,读取系统时间并打印,模拟ls -l功能

    2015.2.27星期五,小雨 标准IO实现的复制功能: #include <stdio.h>#include <errno.h> #define N 64 int main( ...

  3. Linux 命令 ls -l

    一.ll命令 ll并不是linux下一个基本的命令,它实际上是ls -l的一个别名. Ubuntu默认不支持命令ll,必须用 ls -l,这样使用起来不是很方便. 如果要使用此命令,可以作如下修改:打 ...

  4. ls -l 列表信息详解

    我们平时用ls -l 命令查看一个目录下的文件和子目录的详悉信息时,会得到一个详细的文件和目录名列表.这个列表包含了文件的属性,所属用户,所属组,创建时间,文件大小等等信息.这些信息到底是什么意思呢? ...

  5. Linux ls -l内容详解

    ls -l是列出当前目录下所有文件信息 以下是实例: 具体的文字描述如下: 第1字段:  文件属性字段文件属性字段总共有10个字母组成,第一个字母表示文件类型,如果这个字母是一个减号”-”,则说明该文 ...

  6. Linux下ll命令与ls -l

    还大三Linux课的债. 1.ll命令用于显示当前文件下非隐藏文件的详情 查询结果分为7栏: 1)如' -rw-r--r--' 表示三种用户对该文件的不同权限: r:可读:w:可写:x:可执行 其中第 ...

  7. Linux "ls -l"文件列表权限详解

    ls Linux "ls -l"文件列表权限详解 1.使用 ls -l 命令 执行结果如下(/var/log) : drwxr-x--- root adm -- : apache2 ...

  8. 实现Linux下的ls -l命令

    基本实现了Linux下的ls -l命令,对于不同的文件显示不同的颜色和显示符号链接暂时没有实现: /************************************************** ...

  9. linux ls -l 详解

    转自:http://blog.csdn.net/sjzs5590/article/details/8254527 (原文转自http://hi.baidu.com/yzzcheng/item/1a21 ...

  10. [置顶] linux第二天,g++,gcc,ps,cat,sort,grep,kill,less,ls -l ,

    33.less sample.txt 分页输出文件内容到屏幕 34./search content (搜索内容) 可以将文档中有searchcontent 的行输出到屏幕 35.grep scienc ...

随机推荐

  1. 2018秋C语言程序设计(初级)作业- 第3次作业

    7-1 找出最小值 #include<stdio.h> int main() { int min,i,n,count; scanf("%d",&n); for( ...

  2. Chrome 插件下载

    这里推荐几个下载chrome扩展的网站 http://www.cnplugins.com/index.html 分类全,没有搜索 http://www.chromein.com/ 有搜索,推荐使用 h ...

  3. 搭建简单Samba服务器

    本文主要实现搭建简单的Samba服务器,使得Windows能访问Linux下的共享目录,为了简单,已经关闭iptables和selinux. 1.安装samba服务器 #yum list all sa ...

  4. html 刷新 按钮 代码

    <input type=button value=刷新 onclick="history.go(0)"> <input type=button value=刷新 ...

  5. softmax与logistic关系

    Softmax回归模型,该模型是logistic回归模型在多分类问题上的推广,在多分类问题中,类标签  可以取两个以上的值. Softmax回归模型对于诸如MNIST手写数字分类等问题是很有用的,该问 ...

  6. Servlet传统配置方式和Servlet3.0使用注解的方式

    一.Servlet的传统配置方式 在JavaWeb开发中, 每次编写一个Servlet都需要在web.xml文件中进行配置,如下所示: <servlet> <servlet-name ...

  7. LOJ2421 NOIP2015 信息传递 【tarjan求最小环】

    LOJ2421 NOIP2015 信息传递 LINK 题目大意就是给你一个有向图,求最小环 有一个很奇妙的性质叫做每个点只有一条出边 然后我们考虑对每个强联通分量进行考虑 发现每个强联通分量内的边数一 ...

  8. python模块--json \ pickle \ shelve \ XML模块

    一.json模块 之前学习过的eval内置方法可以将一个字符串转成一个python对象,不过eval方法时有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型的时候,e ...

  9. Cucumber 使用例子

    1. junit 配置 @RunWith(Cucumber.class) @CucumberOptions(format ={"pretty","html:target/ ...

  10. PHP实现的多文件上传类及用法示例

    这篇文章主要介绍了PHP实现的多文件上传类及用法,详细分析了php实现的多文件上传类与具体的使用技巧,需要的朋友可以参考下 1.upFiles.css.php 文件 <?php class Up ...