模仿linux命令ls

本文介绍了作者在学习Linux下C编程时,尝试模仿ls命令的实践过程。通过使用数组存储权限掩码,实现了对文件信息的显示,代码以八进制形式呈现。
摘要由CSDN通过智能技术生成

最近学linux下C编程,学到文件方面,编写了一个模仿命令ls的C语言程序,先贴代码

#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<dirent.h>
#include<unistd.h>
#include<stdlib.h>
#include<string.h>
void printmode(mode_t modes)
{
	int i=0;
	char descrip[11];
	static short octarray[9]={0400,0200,0100,0040,0020,0010,0004,0002,0001};
	static char perms[10]="rwxrwxrwx";
	if(S_ISREG(modes)) descrip[0]='-';  //Add file type
	else if(S_ISDIR(modes)) descrip[0]='d';
	else 
	{
		printf("\nUnknown mode\n");
		return;
	}
	for(i=1;i<10;i++)
	{
		if(modes&octarray[i-1])
			descrip[i]=perms[i-1];
		else
			descrip[i]='-';
	}
	for(i=0;i<10;i++)
	{
		printf("%c",descrip[i]);
	}
	printf(" ");
}
void printdir(char path[])
{
	DIR *dir;
	struct dirent *entry;
	struct stat s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值