Unix/Linux系统编程指南 ls函数的实现

这篇博客探讨了Unix/Linux系统中实现`ls`功能的编程方法,从基础概念如目录结构、dirent结构体到核心的`do_ls`函数和主函数的流程。通过分析`ls`函数所需的参数,解释了如何打开、读取并关闭目录,以展示目录内容。
摘要由CSDN通过智能技术生成

基础:

目录(directory)是文件的列表,目录里面有很多记录(dirent),记录可以是文件/子目录
readdir函数可以读取目录中的记录,并且返回指向目录当前记录的指针
记录(dirent)的结构体定义如下
在这里插入图片描述在这里插入图片描述

  • 系统在某个不为人知的地方define了DIR为 directory
  • readdir , closedir 函数都传入directory的指针
  • 目录不会为空,至少有自己,所以当ac(接受的目录的大小)为1的时候,我们需要显示出自己
首先我们来想想这个是怎么实现的
  • 打开一个directory
  • 一直读它,边读边输出,直到读完为止
  • 关闭directory

伪代码:

main()
	opendir
	while ( readdir )
		print d_name
	closedir
分析一下需要传入的参数
  • int ac : dir中的记录的个数
  • char * av[] 各个记录

do_ls

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值