用C语言自己编写一个ls程序
这是自己用C语言编写的一个ls程序,源代码如下:
#include >stdio.h< void do_ls(char *); /************关于本文档******************************************** void do_ls( char * dirname ) if ( ( dir_ptr = opendir( dirname ) ) == NULL ) {/*打开目录*/ void dostat( char *filename ) if ( stat(filename, &info) == -1 ) /*取文件信息失败*/ void show_file_info( char *filename, struct stat *info_p ) mode_to_letters( info_p- printf( "%s" , modestr ); } void mode_to_letters( int mode, char * str ) if ( S_ISDIR(mode) ) str[0] = 'd'; /* 目录 */ if ( mode & S_IRUSR ) str[1] = 'r'; /* 用户权限 */ if ( mode & S_IRGRP ) str[4] = 'r'; /* 组权限 */ if ( mode & S_IROTH ) str[7] = 'r'; /* 其人的权限 */ char *uid_to_name( uid_t uid ) if ( ( pw_ptr = getpwuid( uid ) ) == NULL ){ char *gid_to_name( gid_t gid ) if ( ( grp_ptr = getgrgid(gid) ) == NULL ){ |
运行结果如下:
./a.out / /: drwxr-xr-x 22 root root 4096 Jul 13 12:37 . drwxr-xr-x 22 root root 4096 Jul 13 12:37 .. drwxr-xr-x 2 root root 49152 May 21 03:00 lost+found drwxr-xr-x 130 root root 8192 Jul 16 15:01 etc drwxr-xr-x 3 root root 4096 May 21 03:01 media drwxr-xr-x 2 root root 4096 May 21 03:01 cdrom -rw-r--r-- 1 root root 6773545 Jul 13 08:06 initrd.img drwxr-xr-x 15 root root 4096 Jun 9 08:40 var drwxr-xr-x 18 root root 8192 Jul 13 12:37 lib drwxr-xr-x 11 root root 4096 May 21 03:08 usr drwxr-xr-x 2 root root 4096 Jul 14 09:41 bin drwxr-xr-x 3 root root 4096 Jul 13 12:37 boot drwxr-xr-x 15 root root 15260 Jul 16 14:37 dev drwxr-xr-x 5 root root 4096 Jun 1 09:22 home drwxr-xr-x 6 root root 4096 Jul 10 11:30 mnt dr-xr-xr-x 185 root root 0 Jul 16 22:37 proc drwxr-xr-x 36 root root 4096 Jul 9 15:45 root drwxr-xr-x 2 root root 8192 Jul 14 09:44 sbin drwxrwxrwx 17 root root 4096 Jul 16 16:15 tmp drwxr-xr-x 10 root root 0 Jul 16 22:37 sys drwxr-xr-x 2 root root 4096 May 21 03:02 srv drwxr-xr-x 5 root root 4096 May 29 13:03 opt drwxr-xr-x 2 root root 4096 May 21 03:02 initrd -rw-r--r-- 1 root root 1414702 Jul 8 05:22 vmlinuz drwxr-xr-x 34 administrator administrator 4096 Jul 12 15:31 data |
【作者: Liberal】【访问统计:<script language="JavaScript" src="http://counter.blogchina.com/PageServlet?pageid=6508217&blogid=8561"></script>】【2007年10月26日 星期五 18:46】【注册】【打印】