浏览代码

add seekdir_test.

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1449 bbd45198-f89e-11dd-88c7-29a3b14d5316
bernard.xiong@gmail.com 14 年之前
父节点
当前提交
ae4fa4fcbe
共有 1 个文件被更改,包括 50 次插入0 次删除
  1. 50 0
      examples/file/seekdir.c

+ 50 - 0
examples/file/seekdir.c

@@ -0,0 +1,50 @@
+/*
+ * File      : seekdir.c
+ * This file is part of RT-TestCase in RT-Thread RTOS
+ * COPYRIGHT (C) 2011, RT-Thread Development Team
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rt-thread.org/license/LICENSE
+ *
+ * Change Logs:
+ * Date           Author       Notes
+ * 2011-06-02     Bernard      first version
+ */
+#include <dfs_posix.h>
+
+void seekdir_test(void)
+{
+	DIR * dirp;
+	long save3 = 0;
+	long cur;
+	int i = 0;
+	struct dirent *dp;
+
+	dirp = opendir ("/");
+	save3 = telldir(dirp);
+	for (dp = readdir(dirp); dp != RT_NULL; dp = readdir(dirp))
+	{
+		rt_kprintf("direntry: %s\n", dp->d_name);
+
+		/* 保存第三个目录项的目录指针 */
+		if (i++ == 3)
+		{
+			save3 = telldir(dirp);
+		}
+	}
+
+	/* 回到刚才保存的第三个目录项的目录指针 */
+	seekdir (dirp, save3);
+	rt_kprintf("seek dientry to: %d\n", save3);
+	for (dp = readdir(dirp); dp != RT_NULL; dp = readdir(dirp))
+	{
+		rt_kprintf("direntry: %s\n", dp->d_name);
+	}
+
+	/* 关闭目录 */
+	closedir (dirp);
+} 
+
+#include <finsh.h>
+FINSH_FUNCTION_EXPORT(seekdir_test, perform directory seek test);