summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/file/listdir.c55
-rw-r--r--examples/file/readspeed.c14
-rw-r--r--examples/file/readwrite.c34
-rw-r--r--examples/file/writespeed.c56
4 files changed, 159 insertions, 0 deletions
diff --git a/examples/file/listdir.c b/examples/file/listdir.c
new file mode 100644
index 0000000000..86279163e5
--- /dev/null
+++ b/examples/file/listdir.c
@@ -0,0 +1,55 @@
+/*
+ * File : listdir.c
+ * This file is part of RT-TestCase in RT-Thread RTOS
+ * COPYRIGHT (C) 2010, 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
+ * 2010-02-10 Bernard first version
+ */
+#include <rtthread.h>
+#include <dfs_posix.h>
+
+void list_dir(const char* path)
+{
+ DIR *dir;
+
+ dir = opendir(path);
+ if (dir != RT_NULL)
+ {
+ struct dfs_dirent* dirent;
+ struct dfs_stat s;
+
+ do
+ {
+ dirent = readdir(dir);
+ if (dirent == RT_NULL) break;
+ rt_memset(&s, 0, sizeof(struct dfs_stat));
+
+ /* build full path for each file */
+ rt_sprintf(fullpath, "/%s", dirent->d_name);
+
+ stat(fullpath, &s);
+ if ( s.st_mode & DFS_S_IFDIR )
+ {
+ rt_kprintf("%s\t\t<DIR>\n", dirent->d_name);
+ }
+ else
+ {
+ rt_kprintf("%s\t\t%lu\n", dirent->d_name, s.st_size);
+ }
+ } while (dirent != RT_NULL);
+
+ closedir(dir);
+ }
+ else rt_kprintf("open %s directory failed\n", path);
+}
+
+#ifdef RT_USING_FINSH
+#include <finsh.h>
+FINSH_FUNCTION_EXPORT(list_dir, list directory);
+#endif
diff --git a/examples/file/readspeed.c b/examples/file/readspeed.c
index e76471fb47..5d22756365 100644
--- a/examples/file/readspeed.c
+++ b/examples/file/readspeed.c
@@ -1,3 +1,17 @@
+/*
+ * File : readspeed.c
+ * This file is part of RT-TestCase in RT-Thread RTOS
+ * COPYRIGHT (C) 2010, 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
+ * 2010-02-10 Bernard first version
+ */
+
#include <rtthread.h>
#include <dfs_posix.h>
diff --git a/examples/file/readwrite.c b/examples/file/readwrite.c
new file mode 100644
index 0000000000..b4086cf056
--- /dev/null
+++ b/examples/file/readwrite.c
@@ -0,0 +1,34 @@
+/*
+ * File : readwrite.c
+ * This file is part of RT-TestCase in RT-Thread RTOS
+ * COPYRIGHT (C) 2010, 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
+ * 2010-02-10 Bernard first version
+ */
+#include <rtthread.h>
+#include <dfs_posix.h>
+
+/* �ļ���д���� */
+void readwrite(const char* filename)
+{
+ int fd;
+
+ /* ֻд�� */
+
+ /* ֻд����ĩβ���Ӵ� */
+
+ /* ֻ���򿪽�������У�� */
+
+ /* lseek���ԣ�������У������ */
+}
+
+#ifdef RT_USING_FINSH
+#include <finsh.h>
+FINSH_FUNCTION_EXPORT(readwrite, perform file read and write test);
+#endif
diff --git a/examples/file/writespeed.c b/examples/file/writespeed.c
new file mode 100644
index 0000000000..d829d9977b
--- /dev/null
+++ b/examples/file/writespeed.c
@@ -0,0 +1,56 @@
+/*
+ * File : writespeed.c
+ * This file is part of RT-TestCase in RT-Thread RTOS
+ * COPYRIGHT (C) 2010, 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
+ * 2010-02-10 Bernard first version
+ */
+#include <rtthread.h>
+#include <dfs_posix.h>
+
+void writespeed(const char* filename, int total_length, int block_size)
+{
+ int fd;
+ char *buff_ptr;
+ rt_tick_t tick;
+
+ fd = open(filename, 0, O_WRONLY);
+ if (fd < 0)
+ {
+ rt_kprintf("open file:%s failed\n", filename);
+ return;
+ }
+
+ buff_ptr = rt_malloc(block_size);
+ if (buff_ptr == RT_NULL)
+ {
+ rt_kprintf("no memory\n");
+ close(fd);
+
+ return;
+ }
+
+ /* prepare write data */
+
+ tick = rt_tick_get();
+
+ tick = rt_tick_get() - tick;
+
+ /* close file and release memory */
+ close(fd);
+ rt_free(buff_ptr);
+
+ /* calculate write speed */
+ rt_kprintf("File write speed: %d byte/s\n", total_length/ (tick/RT_TICK_PER_SECOND));
+}
+
+#ifdef RT_USING_FINSH
+#include <finsh.h>
+FINSH_FUNCTION_EXPORT(writespeed, perform file write test);
+#endif