Wednesday, 20 February 2013

Program:To write a C program to simulate the unix ls -l command.

/*

Program:To write a C program to simulate the unix ls -l command.

*/

      #include
      #include
      #include
       #include
      #include
      main(int argc,char *v[])
      {
          DIR *dp;
          struct dirent *p;
          struct stat buf;
          if(argc!=2)
          {
                  printf("\n Insufficient args:");
                 return;
          }
          dp=opendir(".");
          if(dp==NULL)
          {
                  printf("Directory opening problem");
                  return;
          }
          while((p=readdir(dp))!=NULL)
          {
                  if(stat(p->d_name(&buf))<0 br="">                  {
                          printf("\nStat error");
                          exit(0);
                  }
                  if(S_ISREG(buf.st_mode))
                          printf("_");
                  if(S_ISDIR(buf.st_mode))
                          printf("d");
                  if(S_ISCHR(buf.st_mode))
                          printf("c");
                  if(S_ISBLK(buf.st_mode))
                          printf("b");
                  if(S_ISFIFO(buf.st_mode))
                          printf("p");
                  if(S_ISLNK(buf.st_mode))
                          printf("l");
                  if(S_ISSOCK(buf.st_mode))
                          printf("s");
                  if(S_IRUSR & buf.st_mode)
                        printf("r");
                 else
                          printf("-");
                  if(S_IWUSR & buf.st_mode)
                          printf("w");
                 else
                          printf("-");
                 if(S_IXUSR & buf.st_mode)
                          printf("x");
                 else
                         printf("-");
                  if(S_IRGRP & buf.st_mode)
                          printf("x");
                  else
                          printf("-");
                  if(S_IWGRP & buf.st_mode)
                          printf("w");
                  else
                          printf("-");
                  if(S_IXGRP & buf.st_mode)
                          printf("x");
                  else
                          printf("-");
                  if(S_IROTH & buf.st_mode)
                          printf("r");
                  else
                         printf("-");
                  if(S_IWOTH & buf.st_mode)
                         printf("w");
                  else
                          printf("-");
                  if(S_IXOTH & buf.st_mode)
                          printf("x");
                  else
                          printf("-");
                  printf("%d",buf.st_nlink);
                  printf("%d",buf.st_uid);
                  printf("%d",buf.st_gid);
                  printf("%d",buf.st_size);
                  printf("%ld",buf.st_ctime);
                  printf("%s\n",p->d_name);
          }
      }

/*-------------------------------INPUT/OUTPUT---------------------------

-bash-3.2$ cc mylsll.c -o mylsll
-bash-3.2$ ./mylsll
total 640
-rw-r--r-- 1 09121f0078 09121f0001    3 Sep 27 15:57 3q
-rwxr-xr-x 1 09121f0078 09121f0001 7331 Dec  7 16:15 a.out
-rw-r--r-- 1 09121f0078 09121f0001  285 Sep 27 14:19 arth.sh
-rw-r--r-- 1 09121f0078 09121f0001    0 Nov  1 15:37 c
-rw-r--r-- 1 09121f0078 09121f0001   88 Sep 27 15:57 char
-rwxr-xr-x 1 09121f0078 09121f0001 7479 Nov 27 08:45 copy
-rw-r--r-- 1 09121f0078 09121f0001  385 Nov 27 08:50 copy.c
-rw-r--r-- 1 09121f0078 09121f0001  309 Dec  7 16:28 countawk.sh
-rw-r--r-- 1 09121f0078 09121f0001  209 Dec  7 15:46 count.sh
----r-x--T 1 09121f0078 09121f0001   27 Nov 27 15:39 cp.c
-rwxr-xr-x 1 09121f0078 09121f0001  192 Nov  1 15:06 delete.sh
-rw-r--r-- 1 09121f0078 09121f0001  231 Oct 11 16:41 directory.sh
-rw-r--r-- 1 09121f0078 09121f0001  231 Nov  1 16:04 display.sh
-rw-r--r-- 1 09121f0078 09121f0001   43 Dec  6 15:44 ex1.sh
-rw-r--r-- 1 09121f0078 09121f0001   14 Nov  1 16:30 ex1.txt
-rw-r--r-- 1 09121f0078 09121f0001   23 Nov  1 16:31 ex2.txt
-rw-r--r-- 1 09121f0078 09121f0001   63 Oct 11 14:34 example1.txt
-rw-r--r-- 1 09121f0078 09121f0001   57 Oct 11 14:29 example.txt
-rw-r--r-- 1 09121f0078 09121f0001   25 Dec  6 15:16 ex.sh
-rw-r--r-- 1 09121f0078 09121f0001   40 Dec  7 16:31 f1.c
--wxr-x--T 1 09121f0078 09121f0001   27 Nov 27 15:35 f3.c
-rw-r--r-- 1 09121f0078 09121f0001    0 Nov 27 16:07 f4.c
-rw-r--r-- 1 09121f0078 09121f0001    0 Nov 27 16:07 f5.c
-rw-r--r-- 1 09121f0078 09121f0001  146 Dec  7 16:36 factorial.ch
-rw-r--r-- 1 09121f0078 09121f0001    0 Nov 27 15:53 factorial.sh
-rw-r--r-- 1 09121f0078 09121f0001   24 Dec  6 16:13 ff
-rw-r--r-- 1 09121f0078 09121f0001  323 Dec  7 15:06 fib.sh
-rw-r--r-- 1 09121f0078 09121f0001    0 Nov 27 16:19 file1.c
-rw-r--r-- 1 09121f0078 09121f0001    0 Nov 27 16:19 file2.c
-rw-r--r-- 1 09121f0078 09121f0001    0 Nov 27 16:19 file3.c
-rw-r--r-- 1 09121f0078 09121f0001   27 Dec  7 15:05 helloworld.c
-rwxr-xr-x 1 09121f0078 09121f0001 7368 Dec  6 16:32 inode
-rw-r--r-- 1 09121f0078 09121f0001  391 Dec  7 15:34 inode.c
-rw-r--r-- 1 09121f0078 09121f0001  391 Dec  6 14:58 inodes.c
-rw-r--r-- 1 09121f0078 09121f0001  292 Dec  7 15:20 line.sh
drwxr-xr-x 2 09121f0078 09121f0001 4096 Nov  1 16:23 linux
-rw-r--r-- 1 09121f0078 09121f0001  211 Nov  1 16:26 listdir.sh
-rw-r--r-- 1 09121f0078 09121f0001    0 Dec  9 08:25 lsll.c
drwxr-xr-x 2 09121f0078 09121f0001 4096 Nov 27 16:22 lunix
-rw-r--r-- 1 09121f0078 09121f0001    3 Sep 27 15:58 man
-rw-r--r-- 1 09121f0078 09121f0001    3 Sep 27 15:59 man.sh
-rw-r--r-- 1 09121f0078 09121f0001   78 Nov  1 15:10 mansoor.txt
-rw-r--r-- 1 09121f0078 09121f0001 4466 Dec  7 15:26 middle.sh
-rwxr-xr-x 1 09121f0078 09121f0001 7580 Nov 25 10:40 mycat
-rwxr-xr-x 1 09121f0078 09121f0001 7300 Nov 27 08:25 mycat1
-rw-r--r-- 1 09121f0078 09121f0001  300 Dec  7 15:27 mycat1.c
-rw-r--r-- 1 09121f0078 09121f0001  327 Nov 27 08:24 mycat.c
-rwxr-xr-x 1 09121f0078 09121f0001 7408 Nov 27 15:39 mycp
-rw-r--r-- 1 09121f0078 09121f0001  471 Nov 27 15:42 mycp.c
-rwxr-xr-x 1 09121f0078 09121f0001 7176 Dec  6 15:29 myls
-rw-r--r-- 1 09121f0078 09121f0001  287 Dec  6 15:29 myls.c
-rw-r--r-- 1 09121f0078 09121f0001 2699 Dec  7 15:01 mylsl.c
-rw-r--r-- 1 09121f0078 09121f0001 1678 Dec  9 08:28 mylsll.c
-rwxr-xr-x 1 09121f0078 09121f0001 7680 Nov 27 15:52 mymv
-rw-r--r-- 1 09121f0078 09121f0001  483 Dec  6 16:22 mymv.c
-rwxr-xr-x 1 09121f0078 09121f0001 8045 Dec  7 14:06 mypipe
-rw-r--r-- 1 09121f0078 09121f0001  748 Dec  7 16:24 mypipe.c
-rwxrwxrwx 1 09121f0078 09121f0001   86 Sep 27 14:44 number.sh
-rw-r--r-- 1 09121f0078 09121f0001  348 Dec  7 16:15 orphan.c
-rw-r--r-- 1 09121f0078 09121f0001  239 Nov 25 08:49 pc.c
-rwxrwxrwx 1 09121f0078 09121f0001  513 Dec  7 14:58 permission.sh
-rw-r--r-- 1 09121f0078 09121f0001    0 Sep 27 16:18 range.af
-rwxr-xr-x 1 09121f0078 09121f0001  148 Oct 11 14:26 range.sh
-rw-r--r-- 1 09121f0078 09121f0001    0 Dec  7 16:11 receiver.c
-rwxr-xr-x 1 09121f0078 09121f0001 7187 Dec  6 16:28 reciever
-rw-r--r-- 1 09121f0078 09121f0001  301 Dec  7 16:14 reciever.c
-rwxr-xr-x 1 09121f0078 09121f0001 7555 Dec  6 16:21 redirect1
-rw-r--r-- 1 09121f0078 09121f0001  387 Dec  7 15:58 redirect1.c
-rw-r--r-- 1 09121f0078 09121f0001  585 Dec  7 16:30 redirect.c
-rw-r--r-- 1 09121f0078 09121f0001  155 Sep 27 14:19 sample.sh
-rwxr-xr-x 1 09121f0078 09121f0001   20 Sep 27 14:19 sam.sh
-rwxr-xr-x 1 09121f0078 09121f0001 7681 Dec  6 16:28 sender
-rw-r--r-- 1 09121f0078 09121f0001  433 Dec  7 16:38 sender.c
-rw-r--r-- 1 09121f0078 09121f0001   25 Dec  6 16:43 sor
-rwxrwxrwx 1 09121f0078 09121f0001  569 Oct 11 13:57 switch.sh
drwxr-xr-x 2 09121f0078 09121f0001 4096 Nov 27 16:07 unix
-rw-r--r-- 1 09121f0078 09121f0001  154 Dec  7 15:22 vowelawk.sh
-rw-r--r-- 1 09121f0078 09121f0001    0 Sep 15 15:53 witch.h
-rw-r--r-- 1 09121f0078 09121f0001  349 Nov 25 08:27 zombie.c
-------------------------------------------------------------------*/

No comments:

Post a Comment