闲来无事。随便写写,实现简单的ls命令:

|  1 #include <stdio.h>
| 2 #include <stdlib.h>
| 3 #include <dirent.h>
| 4 #include <string.h>
| 5
| 6 int main(int argc, char **argv)
| 7 {
| 8 DIR *pDir;
| 9 struct dirent *stDir;
| 10 int flag = 0;
| 11
| 12 if(argc > 2)
| 13 {
| 14 printf("Usage: ./ls or ./ls xxx\n");
| 15 exit(-1);
| 16 }
| 17 if(argc == 1)
| 18 {
| 19 flag = 1;
| 20 if((pDir = opendir(".")) == NULL)
| 21 {
| 22 printf("open dir error!\n");
| 23 exit(-1);
| 24 }
| 25 }
| 26
| 27 if(!flag)
| 28 {
| 29 if((pDir = opendir(argv[1])) == NULL)
| 30 {
| 31 printf("open dir error!\n");
| 32 exit(-1);
| 33 }
| 34 }
| 35
| 36 while((stDir = readdir(pDir)) != NULL)
| 37 {
| 38 if(strcmp(stDir->d_name, ".") == 0 || strcmp(stDir->d_name, "..") == 0)
| 39 continue;
| 40 printf("%s\n", stDir->d_name);
| 41 }
| 42
| 43 closedir(pDir);
| 44
| 45 return 0;
| 46 }

功能:

./ls     ——列出当前文件夹下文件

./ls xxx——列出指定文件夹下文件

忽略.与..两个文件夹。

Linux系统编程_1_文件夹读取(实现简单ls命令)的更多相关文章

  1. linux系统下修改文件夹目录权限

    linux系统下修改文件夹目录权限 文件夹权限问题 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何 ...

  2. linux 系统获得当前文件夹下存在的所有文件 scandir函数和struct dirent **namelist结构体[转]

    linux 系统获得当前文件夹下存在的所有文件 scandir函数和struct dirent **namelist结构体 1.引用头文件#include<dirent.h> struct ...

  3. 关于Linux系统清理/tmp/文件夹的原理

    转自:http://www.opsers.org/base/clean-up-on-the-linux-system-tmp-folder-you-may-want-to-know.html 我们知道 ...

  4. linux系统编程之文件与io(五)

    上一节中已经学习了文件描述符的复制,复制方法有三种,其中最后一种fcntl还并未使用到,关于这个函数,不光只有复制文件描述符的功能,还有其它一些用法,本节就对其进行一一剖析: fcntl常用操作: 这 ...

  5. linux系统编程之文件与io(一)

    经过了漫长的学习,C语言相关的的基础知识算是告一段落了,这也是尝试用写博客的形式来学习c语言,回过头来看,虽说可能写的内容有些比较简单,但是个人感觉是有史起来学习最踏实的一次,因为里面的每个实验都是自 ...

  6. linux系统下修改文件夹目录权限-chmod

    Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何修改Linux文件-文件夹权限.以主文件夹下的一个名 ...

  7. Linux系统根目录各文件夹的含义

    centos7文件结构截图如下: 首先,我要说明我在安装centos系统的过程中,勾选了GNOME的图形界面,功能当中勾选了办公工具和开发工具,办公工具就是类似于微软的office,现在在微软offi ...

  8. linux c编程:文件夹操作

    创建目录: 用mkdir函数创建目录: mkdir(const char *pathname, mode_t mode) 参数mode有下列的组合: S_ISUID 04000 文件的执行时设置用户I ...

  9. 如何在linux系统下对文件夹名有空格的文件夹进行操作

    http://www.2cto.com/os/201409/335119.html 在Windows操作系统中可以轻易地创建\移动\删除文件夹名带有空格的文件夹, 而在linux则需要进行一些特殊的处 ...

随机推荐

  1. nyoj 1282 部分和问题

    部分和问题(入门题) 时间限制:1000 ms  |  内存限制:65535 KB 难度:0   描述 给你n个数(a1,a2,a3.......an) ,是否存在某一些数字加起来等于k,有就输出 & ...

  2. BZOJ2395 [Balkan 2011]Timeismoney 【最小乘积生成树】

    题目链接 BZOJ2395 题意:无向图中每条边有两种权值,定义一个生成树的权值为两种权值各自的和的积 求权值最小的生成树 题解 如果我们将一个生成树的权值看做坐标,那么每一个生成树就对应一个二维平面 ...

  3. php函数总结

    1. isset($var) 变量存在且不为NULL,则返回TRUE 变量不存在或为NULL,则返回FALSE 2. empty($var) 若变量不存在或变量值为"".0.&qu ...

  4. div中div水平垂直居中

    方法-1 img { vertical-align: middle; } div:before { content: ""; display: inline-block; widt ...

  5. 关于fixed定位的一些错误看法纠正

    之前由于一些误导,一直感觉fixed这个定位在ie8下面是会出现兼容问题的,今天发现这个想法太绝对了,它只是在ie7 8 的怪异模式下面会出现兼容问题 解决这个问题可以通过用absolute来模拟fi ...

  6. 零基础学习Mahout之-----搭建单机环境

    一.Mahout是什么? Mahout是Apache的一个开源项目(http://mahout.apache.org/),提供了机器学习领域的若干经典算法,以便开发人员快速构建机器学习和数据挖掘方面的 ...

  7. BZOJ 4500: 矩阵

    4500: 矩阵 Time Limit: 1 Sec  Memory Limit: 256 MBSubmit: 326  Solved: 182[Submit][Status][Discuss] De ...

  8. using要写多少

    原文发布时间为:2009-10-25 -- 来源于本人的百度文章 [由搬家工具导入] 有时候未必要像默认的这样要using这么多。。。 using System;using System.Data;u ...

  9. angular-关于分页

    列表渲染数据量庞大的时候,我们需要用到一个filter来控制我们的列表进行循环渲染. 这就要用到一个filter,limitTo. 在此,我使用了变量来进行控制,可以随时调换每页的数量,并且配合分页按 ...

  10. 介绍一个牛X的样式counter

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...