linux下的ls实现问题,下面这段while内代码每一句有什么功能?急!b-name什么表示?

linux下的ls实现问题,下面这段while内代码每一句有什么功能?急!b-name什么表示?,第1张

int ls_prepare(char *w,int aflag,int lflag)   //从后面看w是路径

{            //块语句

struct stat buf        //结构体保存文件信息,在头文件<sys/stat.h>

char name[100]        //数组

DIR *dir                    //目录结构体没有必要去研究知道哪些函数用他即可

struct dirent *pdr     //目录信向息结构体, 里面保存文件信息,包括inode,文件名,偏移量...

目测这里应该少了代码因为buf没有初始化

if(S_ISDIR(buf.st_mode))        //判断是否为一个目录

{  

dir = opendir(w)                    //打开路径w

while ((pdr = readdir(dir))!=NULL)         //然后读取目录

{

if(pdr->d_name[0]=='.')                    //如果目录是'.'和隐藏文件(linux隐藏文件'.'打头)

continue                                        //那么跳过

memset(name,0,100)                    情况name字符串

strcpy(name,w)                                把路径复制到字符串中

strcat(name,"/")                                字符串拼接

strcat(name,pdr->d_name)            字符串拼接

do_ls(name,pdr->d_name,lflag)        //这个应该就是自己定义ls的名字吧

}

closedir(dir)                //关闭目录

}

cp命令用于复制文件或目录,格式为:“cp [选项] 源文件 目标文件”。

复制命令的三种情况:

目标文件是一个目录,会将源文件复制到该目录中。 <--你试试看?

目标文件是一个文件,会将源文件覆盖该文件。

目标文件不存在,将会复制源文件并修改为目标文件的名称(重命名)。

参数作用

-p保留原始文件的属性

-d若对象为"链接文件",则保留该"链接文件"的属性

-r递归持续复制(用于目录)

-i若目标文件存在则询问是否覆盖

-a相当于-pdr(p,d,r为上述的参数)

推荐去看看《Linux就该这么学》这本书,简单易懂。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7607506.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存