seekdir.c 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /*
  2. * File : seekdir.c
  3. * This file is part of RT-TestCase in RT-Thread RTOS
  4. * COPYRIGHT (C) 2011, RT-Thread Development Team
  5. *
  6. * The license and distribution terms for this file may be
  7. * found in the file LICENSE in this distribution or at
  8. * http://www.rt-thread.org/license/LICENSE
  9. *
  10. * Change Logs:
  11. * Date Author Notes
  12. * 2011-06-02 Bernard first version
  13. */
  14. #include <dfs_posix.h>
  15. void seekdir_test(void)
  16. {
  17. DIR * dirp;
  18. long save3 = 0;
  19. long cur;
  20. int i = 0;
  21. struct dirent *dp;
  22. dirp = opendir ("/");
  23. save3 = telldir(dirp);
  24. for (dp = readdir(dirp); dp != RT_NULL; dp = readdir(dirp))
  25. {
  26. rt_kprintf("direntry: %s\n", dp->d_name);
  27. /* 保存第三个目录项的目录指针 */
  28. if (i++ == 3)
  29. {
  30. save3 = telldir(dirp);
  31. }
  32. }
  33. /* 回到刚才保存的第三个目录项的目录指针 */
  34. seekdir (dirp, save3);
  35. rt_kprintf("seek dientry to: %d\n", save3);
  36. for (dp = readdir(dirp); dp != RT_NULL; dp = readdir(dirp))
  37. {
  38. rt_kprintf("direntry: %s\n", dp->d_name);
  39. }
  40. /* 关闭目录 */
  41. closedir (dirp);
  42. }
  43. #include <finsh.h>
  44. FINSH_FUNCTION_EXPORT(seekdir_test, perform directory seek test);