ls1.c 738 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. /** ls1.c
  2. ** purpose list contents of directory or directories
  3. ** action if no args, use . else list files in args
  4. **/
  5. #include <stdio.h>
  6. #include <sys/types.h>
  7. #include <dirent.h>
  8. void do_ls(char []);
  9. main(int ac, char *av[])
  10. {
  11. if ( ac == 1 )
  12. do_ls( "." );
  13. else
  14. while ( --ac ){
  15. printf("%s:\n", *++av );
  16. do_ls( *av );
  17. }
  18. }
  19. void do_ls( char dirname[] )
  20. /*
  21. * list files in directory called dirname
  22. */
  23. {
  24. DIR *dir_ptr; /* the directory */
  25. struct dirent *direntp; /* each entry */
  26. if ( ( dir_ptr = opendir( dirname ) ) == NULL )
  27. fprintf(stderr,"ls1: cannot open %s\n", dirname);
  28. else
  29. {
  30. while ( ( direntp = readdir( dir_ptr ) ) != NULL )
  31. printf("%s\n", direntp->d_name );
  32. closedir(dir_ptr);
  33. }
  34. }