资源简介
自己写的linux ls 命令 包括 -l -R -a -U 及各种组合,还有是三种特殊位
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
void dostat();
void sort_R(int );
void futian_do_ls(char []int);
int flag =0;
char name[100]=“ “;
void show_stat_info(char *char *struct stat *);
void mode_to_letter(int char []);
char *gid_to_name(gid_t);
char *uid_to_name(uid_t);
char ftname[100][100];
char uname[100][100];
char sign[100][100];
char sstring[100][100];
int ft=0;
int f;
void do_sort1(int );
void count_byt(char *char *struct stat *);
int allbyt=0;
struct nandt{
char name2[100];
char name1[100];
int time1;
}timet[100];
int t=0;
void sortbytime();
void sort();
main(int acchar *av[])
{
int x=0j;
int sx=0ss=0;
if(ac==1) //不带参数查看当前目录。
{
flag=0;
futian_do_ls(“.“flag);
}
else
{
for(x=1;x if(av[x][0]==‘-‘)
{
strcpy(sign[sx]av[x]);
sx++;
}
else
{
strcpy(sstring[ss]av[x]);
ss++;
}
if(ss==0)//没有目录全是命令
{
strcpy(sstring[ss]“.“);
ss++;
}
}
if(sx==0)//没有输入命令 全是目录
{
flag=0;
for(x=0;x {
printf(“%s:\n“sstring[x]);
futian_do_ls(sstring[x]flag);
}
}
if(sx==1)//只有一个命令
{
for(x=ss-1;x>=0;x--)
{
name[100]=‘\0‘;
t=0;
ftname[100][100]=‘\0‘;
printf(“%s:\n“sstring[x]);
if(strcmp(sign[0]“-a“)==0)
{
flag=1;
futian_do_ls(sstring[x]flag);
}
if(strcmp(sign[0]“-l“)==0)
{
flag=2;
futian_do_ls(sstring[x]flag);
}
if(strcmp(sign[0]“-u“)==0)
{
flag=4;
futian_do_ls(sstring[x]flag);
}
if(strcmp(sign[0]“-R“)==0)
{
flag=7;
futian_do_ls(sstring[x]flag);
}
}
}
if(sx==2)//有两个命令任何组合
{
for(x=ss-1;x>=0;x--)
{
name[100]=‘\0‘;
t=0;
ftname[100][100]=‘\0‘;
printf(“%s:\n“sstring[x]);
if((strcmp(sign[0]“-l“)==0&&strcmp(sign[1]“-a“)==0)||(strcmp(sign[1]“-l“)==0&&strcmp(sign[0]“-a“)==0))
{
flag=3;
futian_do_ls(sstring[x]flag);
}
if((strcmp(sign[0]“-u“)==0&&strcmp(sign[13]“-a“)==0)||(strcmp(sign[1]“-u“)==0&&strcmp(sign[0]“-a“)==0))
{
flag=5;
futian_do_ls(sstring[x]flag);
}
if((strcmp(sign[0]“-u“)==0&&strcmp(sign[1]“-l“)==0)||(strcmp(sign[1]“-u“)==0&&strcmp(sign[0]“-l“)==0))
{
flag=6;
futian_do_ls(sstring[x]flag);
}
if((strcmp(sign[0]“-R“)==0&&strcmp(sign[1]“-l“)==0)||(strcmp(sign[1]“-R“)==0&&strcmp(sign[0]“-l“)==0))
{
flag=8;
相关资源
- uboot到linux logo显示不间断 补丁
- ANSYS LS-DYNA
- VisualStudioUninstaller vs卸载工具
- UNIX/LINUX编程实践教程的源码
- B/S 网上订餐系统
- Linux任务管理器
- linux应用层的华容道游戏源代码
- VMware65_SLP_DeLLSLIC2.1
- 加密cad图形的lisp文件
- delphi 通过Ping命令检测网络是否正常
- ubuntu9.10 可加载内核模块和字符设备驱
- MP3文件ID3v2ID3v2APEv2标签读取
- 操作系统实验——虚存管理实验
- linux下的发包工具sendip
- 尚观培训linux许巍关于c 的笔记和讲义
- 尚观培训linux董亮老师关于数据结构的
- linux 线程池源码 c 版
- linux C 电梯程序练习
- linux下用多进程同步方法解决生产者
- 单片机控制74ls164程序
- ModelSim全套中文手册ModelSim SE6.0C
- Linux 操作系统实验(全)
- Linux From Scratch 中文手册
- LSI RAID配置手册(图文)
- linux 网络实验 ftp程序
- 管家婆加密狗工具dogtools
- Linux命令大全离线版&在线版
- 操作系统共享内存实验
- dos 下运行Linux 命令--gnu_utils
- linux 0.12内核源代码
评论
共有 条评论