C语言实现的ls命令源码分享

在之前的一些看书或者学习中,一直有一种感觉有问题的态度,那就是认为看懂了,但是不动手,感觉这样看书的效果不是很大。ls命令估计是我们在linux/unix里面用的最多的一个命令了,我们就用c来简单的实现一下ls命令。

//
// ls.c
// apue
//
// Created by chenqing on 13-8-22.
// Copyright (c) 2013年 chenqing. All rights reserved.
//

#include "/usr/include/apue.h"
#include "dirent.h"

int main(int argc,char *argv[])
{
 DIR *dp ; //创建一个DIR结构的指针
    //更多信息参考http://www.gnu.org/software/libc/manual/html_node/Opening-a-Directory.html
 struct dirent *dirp;
 if (argc != 2) {
  err_sys("需要两个参数"); //err_sys 是在error.c中定义的一个函数
 }

 if ((dp = opendir(argv[1])) == NULL) {
  err_quit("读取目录出错了!");
 }
 while ((dirp = readdir(dp)) != NULL) {
  printf("%s\n",dirp->d_name);
 }

 closedir(dp);
 exit(0);

}
(0)

相关推荐

  • linux c模拟ls命令详解

    复制代码 代码如下: /* 模拟ls命令,实现参数-tariRl.有些代码重复出现,可改进 可以在该程序的基础上增加参数,该程序思路清晰,容易扩展 */#include<stdio.h>#include<string.h>#include<stdlib.h>#include<sys/types.h>#include<unistd.h>#include<sys/stat.h>#include<dirent.h>#includ

  • C语言实现的ls命令源码分享

    在之前的一些看书或者学习中,一直有一种感觉有问题的态度,那就是认为看懂了,但是不动手,感觉这样看书的效果不是很大.ls命令估计是我们在linux/unix里面用的最多的一个命令了,我们就用c来简单的实现一下ls命令. // // ls.c // apue // // Created by chenqing on 13-8-22. // Copyright (c) 2013年 chenqing. All rights reserved. // #include "/usr/include/apue

  • C语言实现学生管理系统的源码分享

    注意:没有用到数据库使用链表完成此系统! 多文件实现 正式开始 代码都可以直接使用 不想看的,直接复制代码块里面的内容就行! 我用的visual studio 2019   有些使用了 _s  如果是用别的编译器,可以自行修改! 功能介绍 增,删,改,查,退出,保存,以至于格式化! 1.录入学生信息 2.查看录入的学生信息(全部学生信息) 3.修改已录入的学生信息(以学号) 4.删除已录入的学生信息(以学号) 5.保存信息到文件 6.指定查找(以学号) 7.隐藏选项(格式化链表--清空) 'q'

  • 纯C语言:递归二进制转十进制源码分享

    复制代码 代码如下: #include<stdio.h>#include<math.h>int change(int n,int *sum,int *m)//n为第n位,m总位数{    char c;    if(c!='#')    {        *m=*m+1;        change(n+1,sum,m);    }    if(c=='#')    {        return *sum=int(*sum+pow(2,*m-n));    }}void main

  • Go语言读写锁RWMutex的源码分析

    目录 前言 RWMutex 总览 深入源码 数据结构 RLock() RUnlock() Lock() Unlock() 常见问题 实战一下 前言 在前面两篇文章中 初见 Go Mutex .Go Mutex 源码详解,我们学习了 Go语言 中的 Mutex,它是一把互斥锁,每次只允许一个 goroutine 进入临界区,可以保证临界区资源的状态正确性.但是有的情况下,并不是所有 goroutine 都会修改临界区状态,可能只是读取临界区的数据,如果此时还是需要每个 goroutine 拿到锁依

  • 神经网络python源码分享

    神经网络的逻辑应该都是熟知的了,在这里想说明一下交叉验证 交叉验证方法: 看图大概就能理解了,大致就是先将数据集分成K份,对这K份中每一份都取不一样的比例数据进行训练和测试.得出K个误差,将这K个误差平均得到最终误差 这第一个部分是BP神经网络的建立 参数选取参照论文:基于数据挖掘技术的股价指数分析与预测研究_胡林林 import math import random import tushare as ts import pandas as pd random.seed(0) def getD

  • Spring Boot 员工管理系统超详细教程(源码分享)

    员工管理系统 1.准备工作 资料下载 内含源码 + 笔记 + web素材 源码下载地址: http://xiazai.jb51.net/202105/yuanma/javaguanli_jb51.rar 笔记 素材 源码 1.1.导入资源 将文件夹中的静态资源导入idea中 位置如下 1.2.编写pojo层 员工表 //员工表 @Data @NoArgsConstructor public class Employee { private Integer id; private String l

  • Java编程删除链表中重复的节点问题解决思路及源码分享

    一. 题目 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 二. 例子 输入链表:1->2->3->3->4->4->5 处理后为:1->2->5 三. 思路 个人感觉这题关键是注意指针的指向,可以定义一个first对象(值为-1,主要用于返回操作后的链表),first.next指向head,定义一个last同样指向first(主要用于操作记录要删除节点的前一个节点),定义一个p指向head,指向当前节点.

  • WPF实现类似360安全卫士界面的程序源码分享

    下面通过图文并茂的方式给大家介绍WPF实现类似360安全卫士界面的程序源码分享,点击此处下载源码哦. 以前学习Windows Form编程的时候,总感觉自己做的界面很丑,看到360安全卫士.迅雷等软件的UI设计都非常美观,心里总是憧憬着要是自己能实现这样的UI效果该多好!!!另一个困扰我的问题是,这个UI皮肤是如何用技术实现的呢?!虽然好多年过去了,但心里的憧憬和疑惑一直没有消失,而且越来越强烈.在日常的工作和学习中,自己在网上也经常留意类似的技术或者文章.最近在学习WPF的过程中,看到网上也有

  • jQuery复制表单元素附源码分享效果演示

    我们在提交表单时,有时会遇到需要重复添加多个相同表单元素,如订单信息中需要添加多个不同型号的产品.表单数据中新增字段信息等.这个时候我们可以在表单中直接放置一个"新增一项"或"复制"按钮,通过点击按钮即可实现复制表单元素. 查看演示 下载源码 HTML 本文我们通过实例介绍一款简单的基于jQuery的元素复制插件,通过调用该插件轻松实现元素复制功能. 首先载入jQuery库文件和元素复制插件duplicateElement.min.js. <script sr

  • 基于jquery步骤进度条源码分享

    基于jQuery网页步骤流程进度条代码里面包含两款不同效果的jQuery步骤进度条特效.效果图如下: 在线预览       源码下载 html代码: <div class="step_context test"></div> 当前步骤: 第<input type="text" value="5" id="currentStepVal" />步 <button onclick="

随机推荐